diff --git a/week02/Intro.ipynb b/week02/Intro.ipynb index 63c7df6..294730c 100644 --- a/week02/Intro.ipynb +++ b/week02/Intro.ipynb @@ -788,7 +788,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -804,7 +804,7 @@ "lst.append('Hello')\n", "lst += [5, 6]\n", "lst.remove(5)\n", - "print(lst)" + "print(lst)\n" ] }, { @@ -855,11 +855,21 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], "source": [ - "a = int()" + "a = int()\n", + "a=4\n", + "print (a)" ] }, { @@ -1299,7 +1309,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/week02/zelenova_week02/n1 zelenova_week02 b/week02/zelenova_week02/n1 zelenova_week02 new file mode 100644 index 0000000..c496291 --- /dev/null +++ b/week02/zelenova_week02/n1 zelenova_week02 @@ -0,0 +1,12 @@ +# 1. Дано число n. С начала суток прошло n минут. +# Определите, сколько часов и минут будут показывать электронные часы в этот момент. +# Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). +# Учтите, что число n может быть больше, чем количество минут в сутках. (pythontutor.ru, 1 урок, электронные часы) +print ('n=') +n= int(input ()) +minute= n % 60 +if n//60 <24: + hour =n//60 +else: hour=(n//60) % 24 +print (hour,':',minute) + diff --git a/week02/zelenova_week02/n2 zelenova_week02 b/week02/zelenova_week02/n2 zelenova_week02 new file mode 100644 index 0000000..7d14d2a --- /dev/null +++ b/week02/zelenova_week02/n2 zelenova_week02 @@ -0,0 +1,9 @@ +# Напишете программу, которая на вход берет строку text и целое число n, и выводит в слово Hello, +# а также n раз через запятую и пробел строку text. В конце выхода запятая не ставится. +# Например, для text = MIPT Students и n = 5 результат будет следующим: +# Hello, MIPT Students, MIPT Students, MIPT Students, MIPT Students, MIPT Students +print('input your text') +text = str (input ()) +print('input n') +n= int (input ()) +print('Hello'+n*(', '+text)) \ No newline at end of file diff --git a/week02/zelenova_week02/n3 zelenova_week02 b/week02/zelenova_week02/n3 zelenova_week02 new file mode 100644 index 0000000..174c3a6 --- /dev/null +++ b/week02/zelenova_week02/n3 zelenova_week02 @@ -0,0 +1,14 @@ +#3. Даны три числа. Выведите значение наименьшего из них. (pythontutor.ru, 2 урок, минимум из трех чисел) +print('input first number') +first = int(input()) +print('input second number') +second = int(input()) +print('input third number') +third = int(input()) +print('The smallest number is') +if first <= second and first <= third: + print(first) +elif second <= first and second <= third: + print(second) +else: + print(third) diff --git a/week02/zelenova_week02/n4 zelenova_week02 b/week02/zelenova_week02/n4 zelenova_week02 new file mode 100644 index 0000000..9711e95 --- /dev/null +++ b/week02/zelenova_week02/n4 zelenova_week02 @@ -0,0 +1,9 @@ +#4. Длина Московской кольцевой автомобильной дороги —109 километров. +# Байкер Вася стартует с нулевого километра МКАД и едет со скоростью v километров в час. +# На какой отметке он остановится через t часов? Программа получает на вход значение v и t. +# Если v > 0, то Вася движется в положительном направлении по МКАД, если же значение v < 0, то в отрицательном. +# Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася. (pythontutor.ru, 3 урок, МКАД) +v=int(input()) +t=int(input()) +s=(v*t)%109 +print(s) diff --git a/week02/zelenova_week02/n5 zelenova_week02 b/week02/zelenova_week02/n5 zelenova_week02 new file mode 100644 index 0000000..6b830a7 --- /dev/null +++ b/week02/zelenova_week02/n5 zelenova_week02 @@ -0,0 +1,10 @@ +#5. По данному натуральном n вычислите сумму 1! + 2! + 3! + ... + n!. +# В решении этой задачи можно использовать только один цикл. +# (pythontutor.ru, 4 урок, сумма факториалов) +n= int(input()) +sum = 0 +fact = 1 +for i in range(1, n + 1): + fact=fact*i + sum=fact+sum +print(sum) diff --git a/week02/zelenova_week02/n6 zelenova_week02 b/week02/zelenova_week02/n6 zelenova_week02 new file mode 100644 index 0000000..5503958 --- /dev/null +++ b/week02/zelenova_week02/n6 zelenova_week02 @@ -0,0 +1,16 @@ +#6. Последовательность состоит из различных натуральных чисел и завершается числом 0. +# Определите значение второго по величине элемента в этой последовательности. +# Гарантируется, что в последовательности есть хотя бы два элемента. (pythontutor.ru, 6 урок, второй максимум) +lst=int(input()) +firstmax=0 +secmax=0 +while lst!=0: + + if firstmaxa[i+2]: + n+=1 + + return n +print(biggerthanneib(a)) + diff --git a/week04/zelenova_week04/zelenova_week04n10.py b/week04/zelenova_week04/zelenova_week04n10.py new file mode 100644 index 0000000..735b743 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n10.py @@ -0,0 +1,8 @@ +#10.Дана база данных о продажах некоторого интернет-магазина. +# Каждая строка входного файла представляет собой запись вида Покупатель товар количество, +# где Покупатель — имя покупателя (строка без пробелов), +# товар — название товара (строка без пробелов), +# количество — количество приобретенных единиц товара. +# Создайте список всех покупателей, а для каждого покупателя подсчитайте количество приобретенных им единиц каждого вида товаров. +# Список покупателей, а также список товаров для каждого покупателя нужно выводить в лексикографическом порядке. +# (pythontutor.ru, занятие 11, «Продажи») diff --git a/week04/zelenova_week04/zelenova_week04n2.py b/week04/zelenova_week04/zelenova_week04n2.py new file mode 100644 index 0000000..98029ea --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n2.py @@ -0,0 +1,16 @@ +#2. В списке все элементы различны. +# Поменяйте местами минимальный и максимальный элемент этого списка. +# (pythontutor.ru, занятие 7, «Переставить min и max») + +a=[int(s) for s in input().split()] + +def reverce_min_max(a): + '''reverce min max меняет местами минимальный и максимальный элемент в списке, + при условии что все элементы списка различны.''' + x=a.index(max(a)) + y=a.index(min(a)) + a[x], a[y]=min(a),max(a) + + +reverce_min_max(a) +print(' '.join(map(str,a))) \ No newline at end of file diff --git a/week04/zelenova_week04/zelenova_week04n3.py b/week04/zelenova_week04/zelenova_week04n3.py new file mode 100644 index 0000000..30cf143 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n3.py @@ -0,0 +1,14 @@ +#3. Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу. +# Считается, что любые два элемента, равные друг другу образуют одну пару, +# которую необходимо посчитать. (pythontutor.ru, занятие 7, «Количество совпадающих пар») + +a=[int(s) for s in input().split()] +def pairs(a): + '''pairs считает количество пар элементов равных друг другу''' + p=0 + for i in range (len(a)-1): + b=a[i+1:] + n=b.count(a[i]) + p+=n + print('элементы списка образуют',p,'пар') +pairs(a) diff --git a/week04/zelenova_week04/zelenova_week04n4.py b/week04/zelenova_week04/zelenova_week04n4.py new file mode 100644 index 0000000..a26af01 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n4.py @@ -0,0 +1,14 @@ +#4. Дан список. Выведите те его элементы, которые встречаются в списке только один раз. +# Элементы нужно выводить в том порядке, в котором они встречаются в списке. (pythontutor.ru, занятие 7, «Уникальные элементы») + +a=input().split() +def uniq(a): + '''создает новую последовательность, включающие лишь те элементы, + что встречались в исходной последовательности один раз''' + uniq_a=[] + for symbol in a: + if a.count(symbol) == 1: + uniq_a.append(symbol) + print(uniq_a) + +uniq(a) \ No newline at end of file diff --git a/week04/zelenova_week04/zelenova_week04n5.py b/week04/zelenova_week04/zelenova_week04n5.py new file mode 100644 index 0000000..521abd2 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n5.py @@ -0,0 +1,7 @@ +#5. Даны два списка чисел. Найдите все числа, которые входят как в первый, так и во второй список +# и выведите их в порядке возрастания (pythontutor.ru, занятие 10, «Пересечение множеств») +a=[int(s) for s in input().split()] +b=[int(s) for s in input().split()] +c=sorted(list(set(a)&set(b))) + +print(' '.join(map(str,c))) diff --git a/week04/zelenova_week04/zelenova_week04n6.py b/week04/zelenova_week04/zelenova_week04n6.py new file mode 100644 index 0000000..2442de7 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n6.py @@ -0,0 +1,11 @@ +# Во входной строке записана последовательность чисел через пробел. +# Для каждого числа выведите слово YES (в отдельной строке), +# если это число ранее встречалось в последовательности или NO, если не встречалось. +#(pythontutor.ru, занятие 10, «Встречалось ли число раньше») + +a=[int(s) for s in input().split()] +for i in range (len(a)): + if i==a.index(a[i]): + print('NO') + else: print('YES') + diff --git a/week04/zelenova_week04/zelenova_week04n7.py b/week04/zelenova_week04/zelenova_week04n7.py new file mode 100644 index 0000000..273af94 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n7.py @@ -0,0 +1,12 @@ +#7. Дан текст: в первой строке записано число строк, далее идут сами строки. +# Определите, сколько различных слов содержится в этом тексте. +# Словом считается последовательность непробельных символов идущих подряд, +# слова разделены одним или большим числом пробелов или символами конца строки. +# (pythontutor.ru, занятие 10, «Количество слов в тексте») +n=int(input()) +c=set() +for i in range (n): + b=set(input().split()) + c.update(b) +print(len(c)) + diff --git a/week04/zelenova_week04/zelenova_week04n8.py b/week04/zelenova_week04/zelenova_week04n8.py new file mode 100644 index 0000000..ef82388 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n8.py @@ -0,0 +1,15 @@ +#8. Вам дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. +# Все слова в словаре различны. Для слова из словаря, записанного в последней строке, определите его синоним. +# (pythontutor.ru, занятие 11, «Словарь синонимов») +n=int(input()) +sinom= dict(input().split() for k in range(n)) +word = input() +try: + if sinom.get(word) !=-1: + print(sinom[word]) +except KeyError: + for i in sinom: + if sinom[i]==word: + print(i) + + diff --git a/week04/zelenova_week04/zelenova_week04n9.py b/week04/zelenova_week04/zelenova_week04n9.py new file mode 100644 index 0000000..2b97f4d --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n9.py @@ -0,0 +1,23 @@ +#9. Дан текст: в первой строке задано число строк, далее идут сами строки. +# Выведите слово, которое в этом тексте встречается чаще всего. +# Если таких слов несколько, выведите то, которое меньше в лексикографическом порядке. +# (pythontutor.ru, занятие 11, «Самое частое слово») + +n=int(input()) +words=[] +oftwords=set() +for k in range(n): + words+=(input().split()) + +dict={} +for i in range (len(words)): + if words[i] not in dict: + dict[words[i]] = 1 + else: + dict[words[i]] += 1 +m=max(list(dict.values())) +for i in dict: + if dict[i]==m: + oftwords.add(i) +print(min(oftwords)) + diff --git a/zelenova_start b/zelenova_start new file mode 100644 index 0000000..e163c3a --- /dev/null +++ b/zelenova_start @@ -0,0 +1,3 @@ +print("sorry") +print("i'm late") +