diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 000000000..10eb6cd00 Binary files /dev/null and b/.DS_Store differ diff --git a/lesson01/.DS_Store b/lesson01/.DS_Store new file mode 100644 index 000000000..0e85e3985 Binary files /dev/null and b/lesson01/.DS_Store differ diff --git a/lesson01/home_work/hw01_easy.py b/lesson01/home_work/hw01_easy.py index f927b0b06..0bd47e389 100644 --- a/lesson01/home_work/hw01_easy.py +++ b/lesson01/home_work/hw01_easy.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Наринян Александр Игоревич' # Задача-1: Дано произвольное целое число (число заранее неизвестно). # Вывести поочередно цифры исходного числа (порядок вывода цифр неважен). @@ -7,8 +7,13 @@ # * постарайтесь решить задачу с применением арифметики и цикла while; # * при желании решите задачу с применением цикла for. -# код пишем тут... - +a = input('введите n-значное число: ') +b = list(a,) +p = len(b) +i = 0 +while i= 18 : + print('Доступ разрешен') +else: + print ('Извините, пользование данным ресурсом только с 18 лет') \ No newline at end of file diff --git a/lesson01/home_work/hw01_hard.py b/lesson01/home_work/hw01_hard.py index 7df268664..e3fe1b843 100644 --- a/lesson01/home_work/hw01_hard.py +++ b/lesson01/home_work/hw01_hard.py @@ -14,3 +14,12 @@ # если точно известно, что её значение не изменялось? # Подсказка: это значение точно есть ;) + +a = float('inf') +a==a**2 +if True : + a==a*2 + if True: + a>999999 + if True: + print('задача решена!') \ No newline at end of file diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py index 991724e9a..f47271cbd 100644 --- a/lesson01/home_work/hw01_normal.py +++ b/lesson01/home_work/hw01_normal.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Наринян Александр Игоревич' # Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа. # Например, дается x = 58375. @@ -10,6 +10,17 @@ # * постарайтесь решить задачу с применением арифметики и цикла while; # * при желании и понимании решите задачу с применением цикла for. +a = input('введите n-значное число') +b = list(a,) +n = len(b) +i = 0 +while i<(n-1): + if b[i]b[i+1] : + b[i+1] = b[i] + i = i+1 +print(b[n-1]) # Задача-2: Исходные значения двух переменных запросить у пользователя. # Поменять значения переменных местами. Вывести новые значения на экран. @@ -18,6 +29,11 @@ # * постарайтесь сделать решение через действия над числами; # * при желании и понимании воспользуйтесь синтаксисом кортежей Python. +per1 = input('введите значение первой переменной: ') +per2 = input('введите значение второй переменной: ') +per1 = per1 + per2 +print('значение первой переменной изменилось на : ',per1[len(per1)-len(per2):len(per1)]) +print ('значение первой переменной изменилось на : ', per1[0:len(per1)-len(per2)]) # Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида # ax² + bx + c = 0. @@ -25,3 +41,18 @@ # Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: # import math # math.sqrt(4) - вычисляет корень числа 4 + +import math +a=int(input('введите a из уравнения ax**2 + bx +c=0: ')) +b=int(input('введите b из уравнения ax**2 + bx +c=0: ')) +c= int(input('введите c из уравнения ax**2 + bx +c=0: ')) +d=b**2 - 4*a*c +if d>0: + x1 = (-b + math.sqrt(d))/(2*a) + x2 = (-b - math.sqrt(d))/(2*a) + print ('x1 =', x1, 'x2 = ', x2) +elif d==0: + x1 = -b/(2*a) + print('x1=x2', x1) +else: + print('уравнение не имеет корней') \ No newline at end of file diff --git a/lesson02/.DS_Store b/lesson02/.DS_Store new file mode 100644 index 000000000..60258a881 Binary files /dev/null and b/lesson02/.DS_Store differ diff --git a/lesson02/home_work/.DS_Store b/lesson02/home_work/.DS_Store new file mode 100644 index 000000000..5008ddfcf Binary files /dev/null and b/lesson02/home_work/.DS_Store differ diff --git a/lesson02/hw02_easy.py b/lesson02/hw02_easy.py new file mode 100644 index 000000000..34e4bcfcf --- /dev/null +++ b/lesson02/hw02_easy.py @@ -0,0 +1,88 @@ +# Задача-1: +# Дан список фруктов. +# Напишите программу, выводящую фрукты в виде нумерованного списка, +# выровненного по правой стороне. + +# Пример: +# Дано: ["яблоко", "банан", "киви", "арбуз"] +# Вывод: +# 1. яблоко +# 2. банан +# 3. киви +# 4. арбуз + +# Подсказка: воспользоваться методом .format() + +b = input ('введите список продуктов через пробел: ').split() +spisok = [i for i in range(0,len(b))] +for i in spisok: + print ('{}. {:>20}'.format(spisok[i], b[i])) + +# Задача-2: +# Даны два произвольные списка. +# Удалите из первого списка элементы, присутствующие во втором списке. + +spisok1 = input('введите любые значения через пробел: ').split() +spisok2 = input('введите любые значения через пробел: ').split() +i = 0 +while i<=(len(spisok1)): + n = 0 + while n<=(len(spisok2)-1): + if not spisok1: + break + else: + if spisok1[i-1] == spisok2[n]: + p = spisok1[i-1] + spisok1.pop(i-1) + #print('i = ', i, 'n = ', n, spisok1, 'удаленный элемент: ', p) #видим какие эллементы удалены + i =0 + n = n+1 + i = i + 1 +print(spisok1) + +#2й вариант с применением for + +spisok1 = input('введите любые значения через пробел: ').split() +spisok2 = input('введите любые значения через пробел: ').split() +for i in spisok1: + for n in spisok2: + if not spisok1: + break + else: + if i == n: + k = spisok1.index(i) + spisok1.pop(k) +print(spisok1) + + +# Задача-3: +# Дан произвольный список из целых чисел. +# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия: +# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два. + +spisok1 = input('введите произвольный список из целых чисел: ').split() +spisok2 = spisok1 +i = 0 +a = 0 +while i0: + if b <= 12 and b>0: + if c>=1 and c<=9999: + print('date = ', data[0],'.',data[1],'.',data[2], sep ='') + else: + print('дата введена неправильно') + else: + print('дата введена неправильно') + else: + print('дата введена неправильно') + else: + print('дата введена неправильно') + else: + print('дата введена неправильно') +else: + print('дата введена неправильно') + + +# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня) +# +# Вавилонцы решили построить удивительную башню — +# расширяющуюся к верху и содержащую бесконечное число этажей и комнат. +# Она устроена следующим образом — на первом этаже одна комната, +# затем идет два этажа, на каждом из которых по две комнаты, +# затем идёт три этажа, на каждом из которых по три комнаты и так далее: +# ... +# 12 13 14 +# 9 10 11 +# 6 7 8 +# 4 5 +# 2 3 +# 1 +# +# Эту башню решили оборудовать лифтом --- и вот задача: +# нужно научиться по номеру комнаты определять, +# на каком этаже она находится и какая она по счету слева на этом этаже. +# +# Входные данные: В первой строчке задан номер комнаты N, 1 ≤ N ≤ 2 000 000 000. +# +# Выходные данные: Два целых числа — номер этажа и порядковый номер слева на этаже. +# +# Пример: +# Вход: 13 +# Выход: 6 2 +# +# Вход: 11 +# Выход: 5 3 \ No newline at end of file diff --git a/lesson02/hw02_normal.py b/lesson02/hw02_normal.py new file mode 100644 index 000000000..041e4fe18 --- /dev/null +++ b/lesson02/hw02_normal.py @@ -0,0 +1,133 @@ +# Задача-1: +# Дан список, заполненный произвольными целыми числами, получите новый список, +# элементами которого будут квадратные корни элементов исходного списка, +# но только если результаты извлечения корня не имеют десятичной части и +# если такой корень вообще можно извлечь +# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2] +import math +spisok1 = input ('введите произвольные целые числа через пробел: ').split() +spisok2 = spisok1 +i = 0 +p = 0 + +while i<=(len(spisok2)-1): + a = int(spisok1[i]) + if a>=0: + spisok2[i] = math.sqrt(a) + else: + spisok2.pop(i) + i= i-1 + i = i + 1 + +while p <= (len(spisok2) - 1): + if spisok2[p] - int(spisok2[p]) == 0 : + spisok2[p] = int(spisok2[p]) + else: + spisok2.pop(p) + p = p - 1 + p = p + 1 +print(spisok2) + +#через for + +import math +spisok1 = input ('введите произвольные целые числа через пробел: ').split() +spisok2 = [] +spisok3 = [] + +for i in spisok1: + i = int(i) + if i>=0: + a = math.sqrt(i) + spisok2.append(a) + +for n in spisok2: + if n - int(n) == 0: + spisok3.append(n) +print(spisok3) + + +# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013. +# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года. +# Склонением пренебречь (2000 года, 2010 года) + +data = input('введите дату в формате dd.mm.yyyy: ').split('.') +chislo = {'01':'первое', '02':'второе','03':'третье','04':'четвертое', '05':'пятое', '06':'шестое', '07':'седьмое', '08':'восьмое', '09':'девятое', '10':'десятое', '11':'одиннадцатое', '12':'двенадцатое', '13':'тринадцатое', '14':'четырнадцатое', '15':'пятнадцатое', '16':'шестандцатое', '17':'семнадцатое', '18':'восемьнадцатое', '19':'девятнадцатое', '20':'двадцатое', '21':'двадцать первое', '22':'двадцать второе', '23':'двадцать третье', '24':'двадцать четвертое', '25':'двадцать пятое', '26':'двадцать шестое', '27':'двадцать седьмое', '28':'двадцать восьмое','29':'двадцать девятое','30':'тридцатое','31':'тридцать первое'} +mec = {'01':'января','02':'февраля','03':'марта','04':'апреля','05':'мая','06':'июня', '07':'июля','08':'августа','09':'сентября','10':'октября','11':'ноября','12':'декабря'} +a=data[0] +b=data[1] +if int(a) > 31: + print('такое число не существует') + exit() +if int(b) > 12: + print ('такого месяца не существует') + exit() +print('{} {}'.format(chislo[a],mec[b]), data[2],'года') + + + +# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами +# в диапазоне от -100 до 100. В списке должно быть n - элементов. +# Подсказка: +# для получения случайного числа используйте функцию randint() модуля random + +import random +spisok = input('введите величину списка:') +otvet =list() +n=int(spisok) +i=0 +while i<=n: + a=random.randint(-100,100) + otvet.append(a) + i=i+1 +print(otvet) + +#с помощью for + +import random +spisok = input('введите величину списка:') +otvet =list() +n=int(spisok) +for i in range(0,n): + a=random.randint(-100,100) + otvet.append(a) +print(otvet) + +# Задача-4: Дан список, заполненный произвольными целыми числами. +# Получите новый список, элементами которого будут: +# а) неповторяющиеся элементы исходного списка: +# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6] +# б) элементы исходного списка, которые не имеют повторений: +# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6] + +lst = [1,2,4,5,6,2,5,2] +lst1 = lst +i=0 +print ('первоначальный список: ') +print(lst) +lst1.sort() +while i<=(len(lst1)-1): + if lst1[i-1]==lst1[i]: + lst1.pop(i) + i=i-1 + i=i+1 +print () +print ('список без повторов: ') +print(lst1) +i=0 +n=1 +lst = [1,2,4,5,6,2,5,2] +lst2 = lst +print () +while i<=(len(lst2)-1): + a = lst2[i] + b = lst2.count(a) + c = int(b) + if c>1: + while n<=c: + lst2.remove(a) + n=n+1 + n=1 + i=i+1 +print ('список уникальных эллементов') +print(lst2) \ No newline at end of file