├── 1 - Операторы. Переменные. Типы данны. Условия ├── 1.10 - Условия_ if, else, elif. Блоки, отступы │ ├── 1.py │ └── 2.py ├── 1.11 Строки │ ├── 1.py │ └── 2.py ├── 1.12 - Задачи по материалам недели │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ ├── 5.py │ ├── 6.py │ └── 7.py ├── 1.5 Операции с целыми числами │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 1.6 Операции с вещественными числами │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ └── 5.py ├── 1.7 Типы данных │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 1.8 - Переменные. Стандартный ввод-вывод │ ├── 1.py │ ├── 2.py │ └── 3.py └── 1.9 Логические операции, операции сравнения │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 2 - Циклы. Строки. Условия ├── 2.1 - Цикл while │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ └── 5.py ├── 2.2 - Операторы break, continue │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 2.3 - Цикл for │ ├── 1.py │ └── 2.py ├── 2.4 - Строки и символы │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 2.5 - Списки │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ └── 5.py └── 2.6 - Задачи по материалам недели │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ └── 5.py ├── 3 - Функции. Словари. Интерпритатор. Файлы. Модули ├── 3.1 - Функции │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 3.2 - Словари │ ├── 1.py │ ├── 2.py │ └── 3.py ├── 3.4 - Файловый ввод, вывод │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── file.txt │ ├── file2.txt │ └── file3.txt ├── 3.5 - Модули, подключение модулей │ ├── 1.py │ └── 2.py ├── 3.6 - Установка дополнительных модулей │ ├── 1.py │ ├── 2.py │ ├── file-1.txt │ └── file-2.txt └── 3.7 - Задачи по материалам недели │ ├── 1.py │ ├── 2.py │ ├── 3.py │ ├── 4.py │ ├── 5.py │ └── file - 5.txt ├── LICENSE ├── README.md ├── art ├── stepik_Python.png └── stepik_logotype_green.png └── requirements.txt /1 - Операторы. Переменные. Типы данны. Условия/1.10 - Условия_ if, else, elif. Блоки, отступы/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Из передачи “Здоровье” Аня узнала, что рекомендуется спать хотя бы AA часов в сутки, но пересыпать тоже вредно и не стоит спать более BB часов. Сейчас Аня спит HH часов в сутки. Если режим сна Ани удовлетворяет рекомендациям передачи “Здоровье”, выведите “Это нормально”. Если Аня спит менее AA часов, выведите “Недосып”, если же более BB часов, то выведите “Пересып”. 12 | 13 | Получаемое число AA всегда меньше либо равно BB. 14 | 15 | На вход программе в три строки подаются переменные в следующем порядке: AA, BB, HH. 16 | 17 | Обратите внимание на регистр символов: вывод должен в точности соответствовать описанному в задании, т. е. если программа должна вывести "Пересып", выводы программы "пересып", "ПЕРЕСЫП", "ПеРеСыП" и другие не будут считаться верными. 18 | 19 | Это первое не самое тривиальное задание на условное выражение. В случаях, когда разбить исполнение программы на несколько направлений, стоит внимательно обдумать все условия, которые нужно использовать. Особое внимание стоит уделить строгости используемых условных операторов: различайте \lt< и \le≤; \gt> и \ge≥. Для того, чтобы понимать, какой из них стоит использовать, внимательно прочитайте условие задания. 20 | 21 | 22 | ''' 23 | a = int(input()) 24 | b = int(input()) 25 | h = int(input()) 26 | 27 | if a <= h <= b: 28 | print("Это нормально") 29 | elif h < a: 30 | print("Недосып") 31 | else: 32 | print("Пересып") 33 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.10 - Условия_ if, else, elif. Блоки, отступы/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Требуется определить, является ли данный год високосным. 12 | 13 | Напомним, что високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400 (например, 2000-й год являлся високосным, а 2100-й будет невисокосным годом). 14 | 15 | Программа должна корректно работать на числах 1900≤n≤3000. 16 | 17 | Выведите "Високосный" в случае, если считанный год является високосным и "Обычный" в обратном случае (не забывайте проверять регистр выводимых программой символов). 18 | 19 | ''' 20 | a = int(input()) 21 | 22 | if (a % 4 == 0) and (a % 100 != 0) or (a % 400 == 0): 23 | print("Високосный") 24 | else: 25 | print("Обычный") 26 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.11 Строки/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу: 12 | 13 | ''' 14 | # Ответ: 15 | # "239" < "30" and 239 > 30 16 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.11 Строки/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Укажите результат выражения: 12 | 13 | 14 | "123" + "42" 15 | Попробуйте получить ответ без использования интерпретатора. 16 | 17 | Заметьте, что сложение строк производится одинаково и не зависит от того, какие данные содержит строка. 18 | 19 | ''' 20 | s = "123" + "42" 21 | print(s) 22 | # Ответ: 23 | # "12342" 24 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | В то далёкое время, когда Паша ходил в школу, ему очень не нравилась формула Герона для вычисления площади треугольника, так как казалась слишком сложной. В один прекрасный момент Павел решил избавить всех школьников от страданий и написать и распространить по школам программу, вычисляющую площадь треугольника по трём сторонам. 12 | 13 | Одна проблема: так как эта формула не нравилась Павлу, он её не запомнил. Помогите ему завершить доброе дело и напишите программу, вычисляющую площадь треугольника по переданным длинам трёх его сторон по формуле Герона: 14 | 15 | p = (a + b + c) / 2 16 | s = ((p * (p - a) * (p - b) * (p - c)) ** 0.5) 17 | – полупериметр треугольника. На вход программе подаются целые числа, выводом программы должно являться вещественное число, соответствующее площади треугольника. 18 | 19 | ''' 20 | a = int(input("")) 21 | b = int(input("")) 22 | c = int(input("")) 23 | 24 | p = (a + b + c) / 2 25 | s = ((p * (p - a) * (p - b) * (p - c)) ** 0.5) 26 | 27 | print(s) 28 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, принимающую на вход целое число, которая выводит True, если переданное значение попадает в 12 | интервал (-15, 12] \cup (14, 17) \cup [19, +\infty)(−15,12]∪(14,17)∪[19,+∞) и False в противном случае (регистр символов имеет значение). 13 | 14 | Обратите внимание на разные скобки, используемые для обозначения интервалов. 15 | В задании используются полуоткрытые и открытые интервалы. Подробнее про это вы 16 | можете прочитать, например, на википедии (полуинтервал, промежуток). 17 | 18 | ''' 19 | a = int(input()) 20 | 21 | if -15 < a <= 12 or 14 < a < 17 or 19 <= a: 22 | print("True") 23 | else: 24 | print("False") 25 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам ("первое число" "операция" "второе число") и выводит результат на экран. 12 | 13 | Поддерживаемые операции: +, -, /, *, mod, pow, div, где 14 | mod — это взятие остатка от деления, 15 | pow — возведение в степень, 16 | div — целочисленное деление. 17 | 18 | Если выполняется деление и второе число равно 0, необходимо выводить строку "Деление на 0!". 19 | 20 | Обратите внимание, что на вход программе приходят вещественные числа. 21 | 22 | ''' 23 | a = float(input()) 24 | b = float(input()) 25 | c = str(input()) 26 | 27 | if c == "+": 28 | print(a + b) 29 | elif c == "-": 30 | print(a - b) 31 | elif c == "/": 32 | if b != 0: 33 | print(a / b) 34 | else: 35 | print("Деление на 0!") 36 | elif c == "*": 37 | print(a * b) 38 | elif c == "mod": 39 | if b != 0: 40 | print(a % b) 41 | else: 42 | print("Деление на 0!") 43 | elif c == "pow": 44 | print(a ** b) 45 | elif c == "div": 46 | if b != 0: 47 | print(a // b) 48 | else: 49 | print("Деление на 0!") 50 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 4.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Жители страны Малевии часто экспериментируют с планировкой комнат. Комнаты бывают треугольные, прямоугольные и круглые. Чтобы быстро вычислять жилплощадь, требуется написать программу, на вход которой подаётся тип фигуры комнаты и соответствующие параметры, которая бы выводила площадь получившейся комнаты. 12 | Для числа π в стране Малевии используют значение 3.14. 13 | 14 | Формат ввода, который используют Малевийцы: 15 | 16 | треугольник 17 | a 18 | b 19 | c 20 | где a, b и c — длины сторон треугольника 21 | 22 | прямоугольник 23 | a 24 | b 25 | где a и b — длины сторон прямоугольника 26 | 27 | круг 28 | r 29 | где r — радиус окружности 30 | 31 | ''' 32 | x = str(input()) 33 | 34 | if x == "треугольник": 35 | a = float(input()) 36 | b = float(input()) 37 | c = float(input()) 38 | 39 | p = (a + b + c) / 2 40 | s = (p * (p - a) * (p - b) * (p - c)) ** 0.5 41 | 42 | print(s) 43 | 44 | elif x == "прямоугольник": 45 | a = float(input()) 46 | b = float(input()) 47 | 48 | s = a * b 49 | 50 | print(s) 51 | 52 | elif x == "круг": 53 | r = float(input()) 54 | 55 | pi = 3.14 56 | s = pi * (r ** 2) 57 | 58 | print(s) 59 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 5.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая получает на вход три целых числа, по одному числу в строке, и выводит на консоль в три 12 | строки сначала максимальное, потом минимальное, после чего оставшееся число. 13 | 14 | На ввод могут подаваться и повторяющиеся числа. 15 | 16 | ''' 17 | a = int(input()) 18 | b = int(input()) 19 | c = int(input()) 20 | 21 | if a == b and (a > c or b > c): 22 | ma = a 23 | sr = b 24 | mi = c 25 | 26 | elif a == c and (a > b or c > b): 27 | ma = a 28 | sr = c 29 | mi = b 30 | 31 | elif c == b and (c > a or b > c): 32 | ma = c 33 | sr = b 34 | mi = a 35 | 36 | elif a == b and c == b: 37 | ma = a 38 | sr = b 39 | mi = c 40 | 41 | elif a > b and a > c: 42 | ma = a 43 | if b > c: 44 | sr = b 45 | mi = c 46 | else: 47 | sr = c 48 | mi = b 49 | 50 | elif b > a and b > c: 51 | ma = b 52 | if a > c: 53 | sr = a 54 | mi = c 55 | else: 56 | sr = c 57 | mi = a 58 | 59 | elif c > a and c > b: 60 | ma = c 61 | if a > b: 62 | sr = a 63 | mi = b 64 | else: 65 | sr = b 66 | mi = a 67 | 68 | print(ma) 69 | print(mi) 70 | print(sr) 71 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/6.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 6.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов". 12 | 13 | Для того, чтобы это звучало правильно, для каждого nn нужно использовать верное окончание слова. 14 | 15 | Напишите программу, считывающую с пользовательского ввода целое число nn (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом "программист", для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов. 16 | 17 | В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек. 18 | 19 | Дополнительный комментарий к условию: 20 | Обратите внимание, что задача не так проста, как кажется на первый взгляд. Если ваше решение не проходит какой-то тест, это значит, что вы не рассмотрели какой-то из случаев входных данных (число программистов 0 \le n \le 10000≤n≤1000). Обязательно проверяйте свои решения на дополнительных значениях, а не только на тех, что приведены в условии задания. 21 | 22 | Так как задание повышенной сложности, вручную код решений проверяться не будет. Если вы столкнулись с ошибкой в первых четырёх тестах, проверьте, что вы используете только русские символы для ответа. В остальных случаях ищите ошибку в логике работы программы. 23 | 24 | ''' 25 | a = int(input()) 26 | 27 | if 0 <= a <= 1000: 28 | ost = a % 10 29 | if a % 10 == 0 or 5 <= a % 10 <= 9 or 11 <= a % 100 <= 19: 30 | print(a, "программистов") 31 | elif a % 10 == 1 and not (11 <= a % 100 <= 19): 32 | print(a, "программист") 33 | elif 2 <= a % 10 <= 4: 34 | print(a, "программиста") 35 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.12 - Задачи по материалам недели/7.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 7.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Дополнительная 12 | Паша очень любит кататься на общественном транспорте, а получая билет, сразу проверяет, счастливый ли ему попался. Билет считается счастливым, если сумма первых трех цифр совпадает с суммой последних трех цифр номера билета. 13 | 14 | Однако Паша очень плохо считает в уме, поэтому попросил вас написать программу, которая проверит равенство сумм и выведет "Счастливый", если суммы совпадают, и "Обычный", если суммы различны. 15 | 16 | На вход программе подаётся строка из шести цифр. 17 | 18 | Выводить нужно только слово "Счастливый" или "Обычный", с большой буквы. 19 | 20 | ''' 21 | a = str(input()) 22 | 23 | q = int(a[0]) 24 | w = int(a[1]) 25 | e = int(a[2]) 26 | r = int(a[3]) 27 | t = int(a[4]) 28 | y = int(a[5]) 29 | 30 | if (q + w + e) == (r + t + y): 31 | s = "Счастливый" 32 | else: 33 | s = "Обычный" 34 | 35 | print(s) 36 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.5 Операции с целыми числами/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | 11 | ''' 12 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления: 13 | 11111⋅1111111 14 | — произведение чисел 11111 (5 единиц) и 1111111 (7 единиц)''' 15 | x = 11111*1111111 16 | print(x) 17 | 18 | # Ответ: 19 | # 12345554321 20 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.5 Операции с целыми числами/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | 11 | ''' 12 | Составьте выражение для вычисления указанной ниже формулы и вставьте в поле ответа вывод интерпретатора после вычисления этого выражения. 13 | 42/(4+2*(-2)) 14 | 15 | 16 | На самом деле, Python 3 не может вычислить подобное выражение, поэтому возникнет ошибка. 17 | Впишите вывод интерпретатора Python 3 в поле для ответа. 18 | ''' 19 | x = 42/(4+2*(-2)) 20 | print(x) 21 | 22 | # Ответ: 23 | # ZeroDivisionError: division by zero 24 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.5 Операции с целыми числами/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления: 12 | 2014**14 13 | 14 | ''' 15 | x = 2014**14 16 | print(x) 17 | 18 | # Ответ: 19 | # 18064773765607550801425251468864907833685590016 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.6 Операции с вещественными числами/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Запишите число 1.2345e3 в виде десятичной дроби. 12 | ''' 13 | x = 1.2345*10**3 14 | print(x) 15 | 16 | # Ответ: 17 | # 1234.5 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.6 Операции с вещественными числами/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Запишите число 1.2345e-3 в виде десятичной дроби 12 | ''' 13 | x = 1.2345*10**(-3) 14 | print(x) 15 | 16 | # Ответ: 17 | # 0.0012345 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.6 Операции с вещественными числами/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | 2014.0 ** 14 12 | 13 | ''' 14 | x = 2014.0 ** 14 15 | print(x) 16 | 17 | # Ответ: 18 | # 1.806477376560755e+46 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.6 Операции с вещественными числами/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления: 12 | 13 | 7 / 3 14 | 15 | ''' 16 | x = 7 / 3 17 | print(x) 18 | 19 | # Ответ: 20 | # 2.3333333333333335 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.6 Операции с вещественными числами/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления: 12 | 13 | 7 // 3 14 | 15 | Заметьте, что деление нацело работает также и с вещественными числами и соответствует делению с округлением в сторону -\infty−∞. 16 | ''' 17 | x = 7 // 3 18 | print(x) 19 | 20 | # Ответ: 21 | # 2 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.7 Типы данных/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления. 12 | 13 | Приведите к целому типу число 2.99 14 | ''' 15 | x = int(2.99) 16 | print(x) 17 | 18 | # Ответ: 19 | # 2 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.7 Типы данных/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Составьте выражение для вычисления в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления. 12 | 13 | Приведите к целому типу число -1.6 14 | ''' 15 | x = int(-1.6) 16 | print(x) 17 | 18 | # Ответ: 19 | # -1 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.7 Типы данных/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Вычислите в python значение выражения 12 | 9**19 - int(float(9**19)) 13 | 14 | Заметьте, что используется одно и то же число, но результат получается не нулевой. Это показывает различие хранения 15 | большого числа в целочисленном типе и типе с плавающей точкой. 16 | ''' 17 | x = 9**19 - int(float(9**19)) 18 | print(x) 19 | 20 | # Ответ: 21 | # 89 -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.8 - Переменные. Стандартный ввод-вывод/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу: 12 | 13 | Тимофей обычно спит ночью XX часов и устраивает себе днем тихий час на YY минут. Определите, сколько всего минут 14 | Тимофей спит в сутки. 15 | 16 | Внимание, программа принимает значения XX и YY из стандартного потока ввода (функция input), результат надо выводить в 17 | стандартный поток вывода (функция print). Обратите внимание на то, что приглашение, переданное в качестве аргумента в 18 | функцию input, считается выводом вашей программы. Используйте эту функцию без аргументов: 19 | 20 | values = input() # без строки приглашения! 21 | Для этой задачи введён корректный шаблон, так что решать ничего не нужно, разберитесь с тем, что происходит в решении и 22 | как нужно оформлять код для сдачи его в систему. 23 | 24 | Также обратите внимание, что в этой задаче (и во всех последующих задачах, где вам надо будет написать программу), 25 | предлагается пример входных (Sample Input) и выходных данных (Sample Output). Вы можете использовать эти данные для 26 | того, чтобы проверить, что ваша программа работает правильно (по крайней мере на одном примере), и вы используете 27 | верный формат ввода-вывода (например, если в задаче несколько чисел надо вывести в одну строку, а вы выводите 28 | каждое число на отдельной строке, то такой вывод будет считаться неверным). Имейте в виду, что проверяться ваша 29 | программа будет на большом наборе тестов, поэтому рекомендуем вам перед отправкой решения самостоятельно запустить 30 | вашу программу на еще каких-нибудь данных помимо примера из условия. 31 | 32 | Обратите также внимание на ответ от проверяющей системы, доступный по кнопке "Feedback". Там может сообщаться о том, на 33 | каком тесте ваше решение выдаёт неверный ответ или о другой ошибке времени выполнения. 34 | 35 | Примечание: обратите внимание, что приведённый код правильно работает для каждого из примеров по отдельности. 36 | ''' 37 | 38 | X = int(input()) 39 | Y = int(input()) 40 | print(X*60 + Y) 41 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.8 - Переменные. Стандартный ввод-вывод/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Коля каждый день ложится спать ровно в полночь и недавно узнал, что оптимальное время для его сна составляет XX минут. Коля хочет поставить себе будильник так, чтобы он прозвенел ровно через XX минут после полуночи, однако для этого необходимо указать время сигнала в формате часы, минуты. Помогите Коле определить, на какое время завести будильник. 12 | 13 | Часы и минуты в выводе программы должны располагаться на разных строках (см. пример работы программы) 14 | 15 | Помните, что для считывания данных нужно вызывать функцию input без аргументов! 16 | 17 | ''' 18 | x = int(input()) 19 | 20 | hour = int(x // 60) 21 | minute = int(x % 60) 22 | 23 | print(hour) 24 | print(minute) 25 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.8 - Переменные. Стандартный ввод-вывод/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Катя узнала, что ей для сна надо XX минут. В отличие от Коли, Катя ложится спать после полуночи в HH часов и MM минут. Помогите Кате определить, на какое время ей поставить будильник, чтобы он прозвенел ровно через XX минут после того, как она ляжет спать. 12 | 13 | На стандартный ввод, каждое в своей строке, подаются значения XX, HH и MM. Гарантируется, что Катя должна проснуться в тот же день, что и заснуть. Программа должна выводить время, на которое нужно поставить будильник: в первой строке часы, во второй — минуты. 14 | 15 | ''' 16 | x = int(input()) 17 | h = int(input()) 18 | m = int(input()) 19 | 20 | f = x + (h * 60) + m 21 | hour = f // 60 22 | minute = f % 60 23 | 24 | print(hour) 25 | print(minute) 26 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.9 Логические операции, операции сравнения/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Расставьте скобки в выражении 12 | 13 | a and b or not a and not b 14 | 15 | в соответствии с порядком вычисления выражения (приоритетом операций). Всего потребуется 5 пар скобок (внешние скобки входят в их число). 16 | ''' 17 | # Ответ: 18 | # ((a and b) or ((not a) and (not b))) 19 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.9 Логические операции, операции сравнения/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Выполните код в интерпретаторе Python 3 и вставьте в поле ответа результат вычисления. 12 | Постарайтесь разобраться, почему интерпретатор выдал именно такой ответ. 13 | Помните, что любые арифметические операции выше по приоритету операций сравнения и логических операторов. 14 | 15 | Помните, что в Python логические значения пишутся с большой буквы: True, False. 16 | 17 | 18 | x = 5 19 | y = 10 20 | y > x * x or y >= 2 * x and x < y 21 | ''' 22 | 23 | x = 5 24 | y = 10 25 | print((y > (x * x)) or (y >= (2 * x)) and (x < y)) 26 | # Ответ: 27 | # True 28 | -------------------------------------------------------------------------------- /1 - Операторы. Переменные. Типы данны. Условия/1.9 Логические операции, операции сравнения/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Найдите результат выражения для заданных значений aa и bb. Учитывайте регистр символов при ответе. 12 | 13 | a = True 14 | b = False 15 | a and b or not a and not b 16 | ''' 17 | 18 | a = True 19 | b = False 20 | 21 | print((a and b) or (not a and not b)) 22 | # Ответ: 23 | # False -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.1 - Цикл while/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Какое значение будет у переменной i после выполнения фрагмента программы? 12 | 13 | i = 0 14 | while i <= 10: 15 | i = i + 1 16 | if i > 7: 17 | i = i + 2 18 | ''' 19 | 20 | i = 0 21 | while i <= 10: 22 | i = i + 1 23 | if i > 7: 24 | i = i + 2 25 | 26 | print(i) 27 | 28 | # Ответ: 29 | # 13 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.1 - Цикл while/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Сколько итераций цикла будет выполнено в этом фрагменте программы? 12 | ''' 13 | i = 0 14 | num_iter = 0 15 | while i <= 10: 16 | i = i + 1 17 | num_iter +=1 18 | if i > 7: 19 | i = i + 2 20 | 21 | print(num_iter) 22 | # Ответ: 23 | # 9 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.1 - Цикл while/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | 12 | ''' 13 | 14 | i = 0 15 | while i < 5: 16 | print('*') 17 | if i % 2 == 0: 18 | print('**') 19 | if i > 2: 20 | print('***') 21 | i = i + 1 22 | 23 | # Ответ: 24 | # 17 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.1 - Цикл while/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 4.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает со стандартного ввода целые числа, по одному числу в строке, и после первого введенного нуля выводит сумму полученных на вход чисел. 12 | 13 | ''' 14 | s = 0 15 | f = 1 16 | 17 | while f != 0: 18 | f = int(input()) 19 | s = s + f 20 | 21 | print(s) 22 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.1 - Цикл while/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 5.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | В Институте биоинформатики между информатиками и биологами устраивается соревнование. Победителям соревнования достанется большой и вкусный пирог. В команде биологов aa человек, а в команде информатиков — bb человек. 12 | 13 | Нужно заранее разрезать пирог таким образом, чтобы можно было раздать кусочки пирога любой команде, выигравшей соревнование, при этом каждому участнику этой команды должно достаться одинаковое число кусочков пирога. И так как не хочется резать пирог на слишком мелкие кусочки, нужно найти минимальное подходящее число. 14 | 15 | Напишите программу, которая помогает найти это число. 16 | Программа должна считывать размеры команд (два положительных целых числа aa и bb, каждое число вводится на отдельной строке) и выводить наименьшее число dd, которое делится на оба этих числа без остатка. 17 | 18 | ''' 19 | a = int(input()) 20 | b = int(input()) 21 | 22 | d = 1 23 | 24 | while d % a != 0 or d % b != 0: 25 | d += 1 26 | 27 | print(d) 28 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.2 - Операторы break, continue/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Определите, какое значение будет иметь переменная i после выполнения следующего фрагмента программы: 12 | 13 | 14 | ''' 15 | i = 0 16 | s = 0 17 | while i < 10: 18 | i = i + 1 19 | s = s + i 20 | if s > 15: 21 | break 22 | i = i + 1 23 | 24 | print(i) 25 | 26 | # Ответ: 27 | # 7 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.2 - Операторы break, continue/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Определите, какое значение будет иметь переменная i после выполнения следующего фрагмента программы: 12 | ''' 13 | i = 0 14 | s = 0 15 | while i < 10: 16 | i = i + 1 17 | s = s + i 18 | if s > 15: 19 | continue 20 | i = i + 1 21 | 22 | print(i) 23 | 24 | # Ответ: 25 | # 10 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.2 - Операторы break, continue/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает целые числа с консоли по одному числу в строке. 12 | 13 | Для каждого введённого числа проверить: 14 | если число меньше 10, то пропускаем это число; 15 | если число больше 100, то прекращаем считывать числа; 16 | в остальных случаях вывести это число обратно на консоль в отдельной строке. 17 | 18 | ''' 19 | 20 | i = 0 21 | 22 | while i <= 100: 23 | i = int(input()) 24 | if 10 <= i <= 100: 25 | print(i) 26 | else: 27 | continue 28 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.3 - Цикл for/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Когда Павел учился в школе, он запоминал таблицу умножения прямоугольными блоками. Для тренировок ему бы очень пригодилась программа, которая показывала бы блок таблицы умножения. 12 | 13 | Напишите программу, на вход которой даются четыре числа aa, bb, cc и dd, каждое в своей строке. Программа должна вывести фрагмент таблицы умножения для всех чисел отрезка [a; b][a;b] на все числа отрезка [c;d][c;d]. 14 | 15 | Числа aa, bb, cc и dd являются натуральными и не превосходят 10, a \le ba≤b, c \le dc≤d. 16 | 17 | Следуйте формату вывода из примера, для разделения элементов внутри строки используйте '\t' — символ табуляции. Заметьте, что левым столбцом и верхней строкой выводятся сами числа из заданных отрезков — заголовочные столбец и строка таблицы. 18 | 19 | ''' 20 | 21 | a = int(input()) 22 | b = int(input()) 23 | c = int(input()) 24 | d = int(input()) 25 | 26 | f = '' 27 | 28 | for i in range(c, d + 1): 29 | print('\t', i, end='') 30 | print() 31 | 32 | for ii in range(a, b + 1): 33 | print(ii, end="") 34 | for j in range(c, d + 1): 35 | f = str(ii * j) 36 | print('\t', f, end='') 37 | print() 38 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.3 - Цикл for/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает с клавиатуры два числа aa и bb, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b][a;b], которые кратны числу 33. 12 | 13 | В приведенном ниже примере среднее арифметическое считается для чисел на отрезке [-5; 12][−5;12]. Всего чисел, делящихся на 33, на этом отрезке 66: -3, 0, 3, 6, 9, 12−3,0,3,6,9,12. Их среднее арифметическое равно 4.54.5 14 | 15 | На вход программе подаются интервалы, внутри которых всегда есть хотя бы одно число, которое делится на 33. 16 | ''' 17 | 18 | a = int(input()) 19 | b = int(input()) 20 | 21 | s = 0 22 | x = 0 23 | r = 0 24 | 25 | for i in range(a, b + 1): 26 | if i % 3 == 0: 27 | s += i 28 | x += 1 29 | if x > 0: 30 | r = s / x 31 | 32 | print(r) 33 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.4 - Строки и символы/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | GC-состав является важной характеристикой геномных последовательностей и определяется как процентное соотношение суммы всех гуанинов и цитозинов к общему числу нуклеиновых оснований в геномной последовательности. 12 | 13 | Напишите программу, которая вычисляет процентное содержание символов G (гуанин) и C (цитозин) в введенной строке (программа не должна зависеть от регистра вводимых символов). 14 | 15 | Например, в строке "acggtgttat" процентное содержание символов G и C равно 16 | 17 | где 4 -- это количество символов G и C, а 10 -- это длина строки. 18 | 19 | ''' 20 | 21 | a = str(input()) 22 | 23 | f = 0 24 | 25 | for i in a: 26 | if i == 'c' or i == 'C' or i == 'G' or i == 'g': 27 | f += 1 28 | 29 | s = (f / len(a)) * 100 30 | 31 | print(s) 32 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.4 - Строки и символы/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Есть строка s = "abcdefghijk". 12 | В поле ответа через пробел запишите строки (без кавычек), полученные в результате следующих операций: 13 | 14 | # s = 'abcdefghijk' 15 | s[3:6] 16 | s[:6] 17 | s[3:] 18 | s[::-1] 19 | s[-3:] 20 | s[:-6] 21 | s[-1:-10:-2] 22 | 23 | Попробуйте найти ответ к этой задаче, не используя интерпретатор Python. Если без интерпретатора решить не получается, разберитесь, почему выводятся именно такие строки в каждом из вариантов. 24 | 25 | Итоговый формат ответа должен выглядеть следующим образом: 26 | abcd efg hijklmnop qrst uvw xy z 27 | 28 | ''' 29 | s = 'abcdefghijk' 30 | print(s[3:6] + ' '+ s[:6] + ' '+ s[3:] + ' '+ s[::-1] + ' '+ s[-3:] + ' '+ s[:-6] + ' '+ s[-1:-10:-2]) 31 | 32 | # Ответ: 33 | # def abcdef defghijk kjihgfedcba ijk abcde kigec -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.4 - Строки и символы/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке. 12 | 13 | Кодирование осуществляется следующим образом: 14 | s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки. 15 | 16 | Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод. Кодирование должно учитывать регистр символов. 17 | 18 | ''' 19 | 20 | s = input() 21 | 22 | s = s + '1' 23 | z = s[0] 24 | c = 0 25 | st = '' 26 | 27 | for i in s: 28 | if z != i: 29 | st += z + str(c) 30 | z = i 31 | c = 0 32 | c += 1 33 | 34 | print(st) 35 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.5 - Списки/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Сколько элементов будет содержать список students после следующих операций? 12 | 13 | students = ['Ivan', 'Masha', 'Sasha'] 14 | students += ['Olga'] 15 | students += 'Olga' 16 | 17 | Введите в поле ответа одно число. 18 | 19 | 20 | 21 | Подумайте, почему так происходит. Посмотрите внимательнее на заданные операции и чем они отличаются. 22 | 23 | Если не получается решить сразу – попробуйте запустить этот код в интерпретаторе и напечатать результат, а также поэкспериментировать с оператором +=. Теперь попробуйте еще раз подумать, почему так происходит. 24 | 25 | ''' 26 | students = ['Ivan', 'Masha', 'Sasha'] 27 | students += ['Olga'] 28 | students += 'Olga' 29 | 30 | print(len(students)) 31 | # Ответ: 32 | # 8 -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.5 - Списки/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Имеется программа, код которой указан ниже. 12 | Укажите, какие значения будут содержать списки в помеченных участках: 13 | 14 | a = [1, 2, 3] 15 | b = a 16 | # значения списка b? 17 | 18 | a[1] = 10 19 | # значения списка b? 20 | 21 | b[0] = 20 22 | # значения списка a? 23 | 24 | a = [5, 6] 25 | # значения списка b? 26 | Запишите значения списков в одну строку, разделяя списки точкой с запятой, а элементы внутри списка — пробелом, например: 27 | 1 1 1; 2 2 2; 3 3 3; 4 4 4 28 | 29 | ''' 30 | 31 | a = [1, 2, 3] 32 | b = a 33 | print(b, ';', end='') # значения списка b? 34 | 35 | a[1] = 10 36 | print(b, ';', end='') # значения списка b? 37 | 38 | b[0] = 20 39 | print(a, ';', end='') # значения списка a? 40 | 41 | a = [5, 6] 42 | print(b, end='') # значения списка b? 43 | 44 | # 1 2 3; 1 10 3; 20 10 3; 20 10 3 45 | 46 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.5 - Списки/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, на вход которой подается одна строка с целыми числами. Программа должна вывести сумму этих чисел. 12 | 13 | Используйте метод split строки. 14 | 15 | ''' 16 | 17 | string = input() 18 | 19 | list_spring = string.split() 20 | summa = 0 21 | 22 | for i in list_spring: 23 | summa += int(i) 24 | 25 | print(summa) 26 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.5 - Списки/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 4.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список "1 3 5 6 10", то на выход ожидается список "13 6 9 15 7" (без кавычек). 12 | 13 | Если на вход пришло только одно число, надо вывести его же. 14 | 15 | Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом. 16 | 17 | ''' 18 | 19 | string = input() 20 | 21 | list_spring = string.split() 22 | len_list = len(list_spring) - 1 23 | new_list = [] 24 | new_string = "" 25 | 26 | if len_list > 0: 27 | for i in range(len_list): 28 | if i == 0: 29 | new_list.append(int(list_spring[len_list]) + int(list_spring[i+1])) 30 | else: 31 | new_list.append(int(list_spring[i-1]) + int(list_spring[i+1])) 32 | 33 | new_list.append(int(list_spring[len_list - 1]) + int(list_spring[0])) 34 | for j in range(len_list+1): 35 | if j == 0: 36 | new_string += str(new_list[j]) 37 | else: 38 | new_string += ' ' + str(new_list[j]) 39 | else: 40 | new_list.append(int(list_spring[0])) 41 | new_string = str(list_spring[0]) 42 | 43 | print(new_string) 44 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.5 - Списки/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 5.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые встречаются в нём более одного раза. 12 | 13 | Для решения задачи может пригодиться метод sort списка. 14 | 15 | Выводимые числа не должны повторяться, порядок их вывода может быть произвольным. 16 | 17 | ''' 18 | 19 | string = input() 20 | 21 | list_string = sorted(string.split()) 22 | new = [] 23 | out_str = "" 24 | 25 | for i in list_string: 26 | if list_string.count(i) >= 2: 27 | while list_string.count(i) >= 3: 28 | list_string.remove(i) 29 | list_string.remove(i) 30 | new.append(i) 31 | 32 | for j in range(int(len(new))): 33 | if j != 0: 34 | out_str += " " + new[j] 35 | else: 36 | out_str += new[j] 37 | 38 | if len(out_str) >= 1: 39 | print(out_str) 40 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.6 - Задачи по материалам недели/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел. 12 | 13 | Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно. 14 | 15 | В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения. 16 | 17 | ''' 18 | 19 | summa = int(input()) 20 | 21 | c = 0 22 | kv = summa ** 2 23 | 24 | if summa == 0 and c == 0: 25 | summa = 0 26 | kv = 0 27 | else: 28 | while summa != 0: 29 | input_data = int(input()) 30 | summa += input_data 31 | c += 1 32 | kv += input_data ** 2 33 | 34 | print(kv) 35 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.6 - Задачи по материалам недели/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку. 12 | 13 | Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4. 14 | 15 | ''' 16 | 17 | n = int(input()) 18 | 19 | list_out = [] 20 | str_out = "" 21 | c = 0 22 | 23 | while c < n: 24 | c += 1 25 | for j in range(c): 26 | list_out.append(c) 27 | 28 | for i in range(n): 29 | str_out += str(list_out[i]) + " " 30 | 31 | str_out = str_out[:-1] 32 | 33 | print(str_out) 34 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.6 - Задачи по материалам недели/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает список чисел lstlst из первой строки и число xx из второй строки, которая выводит все позиции, на которых встречается число xx в переданном списке lstlst. 12 | 13 | Позиции нумеруются с нуля, если число xx не встречается в списке, вывести строку "Отсутствует" (без кавычек, с большой буквы). 14 | 15 | Позиции должны быть выведены в одну строку, по возрастанию абсолютного значения. 16 | 17 | ''' 18 | 19 | lst = input().split() 20 | x = input() 21 | 22 | if x not in lst: 23 | print("Отсутствует") 24 | else: 25 | str_out = "" 26 | 27 | for i, j in enumerate(lst): 28 | if x == j: 29 | str_out += str(i) + " " 30 | print(str_out[:-1]) 31 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.6 - Задачи по материалам недели/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 4.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк. После последней строки матрицы идёт строка, содержащая только строку "end" (без кавычек, см. Sample Input). 12 | 13 | Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы. 14 | 15 | В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению. 16 | 17 | ''' 18 | 19 | str_input = str(input()) 20 | 21 | stop_word = "end" 22 | 23 | if str_input != stop_word: 24 | matrix = [str_input.split()] 25 | 26 | # Ввод значений матрицы построчно, до строки "end": 27 | while str_input != stop_word: 28 | str_input = str(input()) 29 | if str_input != stop_word and str_input != "": 30 | matrix.append(str_input.split()) 31 | else: 32 | break 33 | 34 | # Глубокое копирование матрицы: 35 | matrix_copy = matrix[:] 36 | for n, m in enumerate(matrix): 37 | matrix_copy[n] = matrix[n][:] 38 | 39 | # Многомерный цикл: 40 | for i, ii in enumerate(matrix): 41 | for j, jj in enumerate(ii): 42 | 43 | len_str = len(matrix) 44 | len_col = len(ii) 45 | m_str_end = len_str - 1 46 | m_col_end = len_col - 1 47 | 48 | # Матрица 1х1: 49 | if len_str == 1 and len_col == 1: 50 | matrix_copy[i][j] = str(int(matrix[i][j]) * 4) 51 | 52 | # Квадратная или произвольная матрица: 53 | elif (len_str == len_col) or (len_str != len_col and len_str != 1 and len_col != 1): 54 | 55 | # First: 56 | if i == 0: 57 | up = int(matrix[m_str_end][j]) 58 | down = int(matrix[i + 1][j]) 59 | 60 | if j == 0: 61 | left = int(matrix[i][m_col_end]) 62 | right = int(matrix[i][j + 1]) 63 | 64 | elif 0 < j < m_col_end: 65 | left = int(matrix[i][j - 1]) 66 | right = int(matrix[i][j + 1]) 67 | 68 | elif j == m_col_end: 69 | left = int(matrix[i][j - 1]) 70 | right = int(matrix[i][0]) 71 | 72 | matrix_copy[i][j] = str(up + down + left + right) 73 | 74 | # Mid: 75 | elif 0 < i < m_str_end: 76 | up = int(matrix[i - 1][j]) 77 | down = int(matrix[i + 1][j]) 78 | 79 | if j == 0: 80 | left = int(matrix[i][m_col_end]) 81 | right = int(matrix[i][j + 1]) 82 | 83 | elif j < m_col_end: 84 | left = int(matrix[i][j - 1]) 85 | right = int(matrix[i][j + 1]) 86 | 87 | elif j == m_col_end: 88 | left = int(matrix[i][j - 1]) 89 | right = int(matrix[i][0]) 90 | 91 | matrix_copy[i][j] = str(up + down + left + right) 92 | 93 | # Last: 94 | elif i == m_str_end: 95 | up = int(matrix[i - 1][j]) 96 | down = int(matrix[0][j]) 97 | 98 | if j == 0: 99 | left = int(matrix[i][m_col_end]) 100 | right = int(matrix[i][j + 1]) 101 | 102 | elif 0 < j < m_col_end: 103 | left = int(matrix[i][j - 1]) 104 | right = int(matrix[i][j + 1]) 105 | 106 | elif j == m_col_end: 107 | left = int(matrix[i][j - 1]) 108 | right = int(matrix[i][0]) 109 | 110 | matrix_copy[i][j] = str(up + down + left + right) 111 | 112 | # Матрица со столбцом = 1: 113 | elif len_str > 1 and len_col == 1: 114 | left_right = int(matrix[i][j]) * 2 115 | 116 | if i == 0: 117 | up = int(matrix[m_str_end][j]) 118 | down = int(matrix[i + 1][j]) 119 | 120 | elif i == m_str_end: 121 | up = int(matrix[i - 1][j]) 122 | down = int(matrix[0][j]) 123 | 124 | elif 0 < i < m_str_end: 125 | up = int(matrix[i - 1][j]) 126 | down = int(matrix[i + 1][j]) 127 | 128 | matrix_copy[i][j] = str(up + down + left_right) 129 | 130 | # Матрица со строчкой = 1: 131 | elif len_str == 1 and len_col > 1: 132 | up_down = int(matrix[i][j]) * 2 133 | 134 | if j == 0: 135 | left = int(matrix[i][m_col_end]) 136 | right = int(matrix[i][j + 1]) 137 | 138 | elif j == m_col_end: 139 | left = int(matrix[i][j - 1]) 140 | right = int(matrix[i][0]) 141 | 142 | elif 0 < j < m_col_end: 143 | left = int(matrix[i][j - 1]) 144 | right = int(matrix[i][j + 1]) 145 | 146 | matrix_copy[i][j] = str(up_down + left + right) 147 | else: 148 | break 149 | 150 | # Вывод результата: 151 | if len(matrix_copy[:][:]) != 0: 152 | for z, zz in enumerate(matrix_copy): 153 | output_string = "" 154 | for x, xx in enumerate(zz): 155 | output_string += xx + " " 156 | print(output_string[:-1]) 157 | -------------------------------------------------------------------------------- /2 - Циклы. Строки. Условия/2.6 - Задачи по материалам недели/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 5.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Выведите таблицу размером n \times nn×n, заполненную числами от 11 до n^2n 2 12 | по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере (здесь n=5n=5): 13 | 14 | ''' 15 | 16 | InputNumber = int(input()) 17 | 18 | Matrix = [[0] * InputNumber for i in range(InputNumber)] # генерация матрицы n*n и заполнение её нулями 19 | Matrix[0] = [(col+1) for col in range(InputNumber)] # проход по самой верхней грани матрицы через генератор 20 | y = 0 21 | x = InputNumber-1 22 | row=InputNumber 23 | index = InputNumber # так как проход по верхней грани уже сделан,индекс равен верхней грани, y - столбец, х - строка 24 | 25 | while index < InputNumber*InputNumber: # пока индекс не больше n*n 26 | row -= 1 # уменьшения длины на 1 27 | for column in range(row): # вниз 28 | y += 1 # направление вниз 29 | index += 1 30 | Matrix[y][x] = index 31 | for column in range(row): #влево 32 | x -= 1 # направление влево 33 | index += 1 34 | Matrix[y][x] = index 35 | if index >= InputNumber * InputNumber: 36 | break 37 | row -= 1 # уменьшения длины на 1 38 | for column in range(row): # вверх 39 | y -= 1 # направление вверх 40 | index += 1 41 | Matrix[y][x] = index 42 | for column in range(row): # вправо 43 | x += 1 # направление вправо 44 | index += 1 45 | Matrix[y][x] = index 46 | 47 | for line in Matrix: 48 | print("\t".join(map(str, line))) -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.1 - Функции/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Есть функция f, которая определена следующим образом: 12 | 13 | def f(n): 14 | return n * 10 + 5 15 | Введите её в интерпретаторе и посчитайте, чему равно значение следующего выражения: 16 | 17 | f(f(f(10))) 18 | Разберитесь, почему получается именно такое значение. 19 | 20 | ''' 21 | 22 | def f(n): 23 | return n * 10 + 5 24 | 25 | print(f(f(f(10)))) 26 | 27 | # Ответ: 28 | # 10555 29 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.1 - Функции/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите функцию f(x), которая возвращает значение следующей функции, определённой на всей числовой прямой: 12 | 13 | ''' 14 | 15 | def f(x): 16 | ff = 0 17 | if x <= -2: 18 | ff = 1 - (x + 2) ** 2 19 | 20 | elif -2 < x <= 2: 21 | ff = (x / 2) * -1 22 | 23 | elif x > 2: 24 | ff = (x - 2) ** 2 + 1 25 | 26 | return ff 27 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.1 - Функции/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите функцию modify_list(l), которая принимает на вход список целых чисел, удаляет из него все нечётные значения, а чётные нацело делит на два. Функция не должна ничего возвращать, требуется только изменение переданного списка, например: 12 | 13 | ''' 14 | 15 | def modify_list(l): 16 | a = [] 17 | for i in range (len(l)): 18 | if l[i] % 2 == 0: 19 | l[i] //= 2 20 | a.append(l[i]) 21 | del l[:] 22 | for i in range(len(a)): 23 | l.append(a[i]) 24 | 25 | lst = [1, 2, 3, 4, 5, 6] 26 | #print(modify_list(lst)) # None 27 | #print(lst) # [1, 2, 3] 28 | modify_list(lst) 29 | #print(lst) # [1] 30 | 31 | lst = [10, 5, 8, 3] 32 | modify_list(lst) 33 | #print(lst) # [5, 4] 34 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.2 - Словари/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите функцию update_dictionary(d, key, value), которая принимает на вход словарь dd и два числа: keykey и valuevalue. 12 | 13 | Если ключ keykey есть в словаре dd, то добавьте значение valuevalue в список, который хранится по этому ключу. 14 | Если ключа keykey нет в словаре, то нужно добавить значение в список по ключу 2 * key2∗key. Если и ключа 2 * key2∗key нет, то нужно добавить ключ 2 * key2∗key в словарь и сопоставить ему список из переданного элемента [value][value]. 15 | 16 | Требуется реализовать только эту функцию, кода вне её не должно быть. 17 | Функция не должна вызывать внутри себя функции input и print. 18 | 19 | Пример работы функции: 20 | 21 | ''' 22 | 23 | def update_dictionary(d, key, value): 24 | if key in d.keys(): 25 | d[key].append(value) 26 | elif key * 2 in d.keys(): 27 | d[key * 2].append(value) 28 | else: 29 | d.update({key * 2: [value]}) 30 | 31 | 32 | if __name__ == '__main__': 33 | d = {} 34 | #print(update_dictionary(d, 1, -1)) # None 35 | #print(d) # {2: [-1]} 36 | update_dictionary(d, 2, -2) 37 | #print(d) # {2: [-1, -2]} 38 | update_dictionary(d, 1, -3) 39 | #print(d) # {2: [-1, -2, -3]} -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.2 - Словари/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Когда Антон прочитал «Войну и мир», ему стало интересно, сколько слов и в каком количестве используется в этой книге. 12 | 13 | Помогите Антону написать упрощённую версию такой программы, которая сможет подсчитать слова, разделённые пробелом и вывести получившуюся статистику. 14 | 15 | Программа должна считывать одну строку со стандартного ввода и выводить для каждого уникального слова в этой строке число его повторений (без учёта регистра) в формате "слово количество" (см. пример вывода). 16 | Порядок вывода слов может быть произвольным, каждое уникальное слово должно выводиться только один раз. 17 | 18 | ''' 19 | 20 | input_str = (str(input()).lower()) 21 | 22 | list_str = input_str.split() 23 | new_dict = {} 24 | 25 | for i in list_str: 26 | if i in new_dict: 27 | new_dict[i] += 1 28 | else: 29 | new_dict.update({i: 1}) 30 | 31 | for word, count in new_dict.items(): 32 | print(word, count) 33 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.2 - Словари/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая считывает строку с числом nn, которое задаёт количество чисел, которые нужно считать. Далее считывает nn строк с числами x_ix 12 | i , по одному числу в каждой строке. Итого будет n+1n+1 строк. 13 | 14 | При считывании числа x_ix i программа должна на отдельной строке вывести значение f(x_i)f(x i ). Функция f(x) уже реализована и доступна для вызова. 15 | 16 | Функция вычисляется достаточно долго и зависит только от переданного аргумента xx. Для того, чтобы уложиться в ограничение по времени, нужно избежать повторного вычисления значений. 17 | 18 | ''' 19 | 20 | n_input = int(input()) 21 | 22 | new_dict = {} 23 | 24 | for i in range(n_input): 25 | inp = int(input()) 26 | if inp in new_dict: 27 | print(new_dict[inp]) 28 | else: 29 | new_dict[inp] = f(inp) 30 | print(new_dict[inp]) 31 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | На прошлой неделе мы сжимали строки, используя кодирование повторов. Теперь нашей задачей будет восстановление исходной строки обратно. 12 | 13 | Напишите программу, которая считывает из файла строку, соответствующую тексту, сжатому с помощью кодирования повторов, и производит обратную операцию, получая исходный текст. 14 | 15 | Запишите полученный текст в файл и прикрепите его, как ответ на это задание. 16 | 17 | В исходном тексте не встречаются цифры, так что код однозначно интерпретируем. 18 | 19 | Примечание. Это первое задание типа Dataset Quiz. В таких заданиях после нажатия "Start Quiz" у вас появляется ссылка "download your dataset". Используйте эту ссылку для того, чтобы загрузить файл со входными данными к себе на компьютер. Запустите вашу программу, используя этот файл в качестве входных данных. Выходной файл, который при этом у вас получится, надо отправить в качестве ответа на эту задачу. 20 | 21 | 22 | ''' 23 | 24 | with open("file.txt") as inf: 25 | text_string = inf.readline() 26 | 27 | int_num = "" 28 | list_int_num = [] 29 | 30 | short_str = "" 31 | list_short_str = [] 32 | 33 | output_text = "" 34 | 35 | # Поиск чисел и отдельных символов: 36 | for char in text_string: 37 | if char.isdigit(): 38 | int_num += char 39 | else: 40 | if int_num != "": 41 | list_int_num.append(int(int_num)) 42 | int_num = "" 43 | list_short_str.append(char) 44 | 45 | if int_num != "": 46 | list_int_num.append(int(int_num)) 47 | 48 | 49 | for i, ii in enumerate(list_int_num): 50 | for x in range(int(ii)): 51 | output_text += list_short_str[i] 52 | 53 | print(output_text) 54 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Недавно мы считали для каждого слова количество его вхождений в строку. Но на все слова может быть не так интересно смотреть, как, например, на наиболее часто используемые. 12 | 13 | Напишите программу, которая считывает текст из файла (в файле может быть больше одной строки) и выводит самое частое слово в этом тексте и через пробел то, сколько раз оно встретилось. Если таких слов несколько, вывести лексикографически первое (можно использовать оператор < для строк). 14 | 15 | В качестве ответа укажите вывод программы, а не саму программу. 16 | 17 | Слова, написанные в разных регистрах, считаются одинаковыми. 18 | 19 | ''' 20 | 21 | with open("file2.txt") as inf: 22 | text_str = inf.readlines() 23 | text_string = "" 24 | for lines in text_str: 25 | text_string += lines.strip() + " " 26 | 27 | new_list = [] 28 | new_word = "" 29 | max_count = 0 30 | 31 | # Перевод слов в список: 32 | for char in text_string: 33 | if char != " ": 34 | new_word += char 35 | else: 36 | new_list.append(new_word.lower()) 37 | new_word = "" 38 | 39 | if new_word != "": 40 | new_list.append(new_word.lower()) 41 | 42 | max_word = new_list[0] 43 | 44 | for word in new_list: 45 | if new_list.count(word) >= max_count: 46 | max_count = new_list.count(word) 47 | if len(word) < len(max_word): 48 | max_word = word 49 | 50 | print(max_word, max_count) 51 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Имеется файл с данными по успеваемости абитуриентов. Он представляет из себя набор строк, где в каждой строке записана следующая информация: 12 | 13 | Фамилия;Оценка_по_математике;Оценка_по_физике;Оценка_по_русскому_языку 14 | 15 | Поля внутри строки разделены точкой с запятой, оценки — целые числа. 16 | 17 | Напишите программу, которая считывает исходный файл с подобной структурой и для каждого абитуриента записывает его среднюю оценку по трём предметам на отдельной строке, соответствующей этому абитуриенту, в файл с ответом. 18 | 19 | Также вычислите средние баллы по математике, физике и русскому языку по всем абитуриентам и добавьте полученные значения, разделённые пробелом, последней строкой в файл с ответом. 20 | 21 | В качестве ответа на задание прикрепите полученный файл со средними оценками по каждому ученику и одной строкой со средними оценками по трём предметам. 22 | 23 | Примечание. Для разбиения строки на части по символу ';' можно использовать метод split следующим образом: 24 | 25 | print('First;Second-1 Second-2;Third'.split(';')) 26 | # ['First', 'Second-1 Second-2', 'Third'] 27 | 28 | ''' 29 | 30 | with open("file3.txt") as inf: 31 | text_str = inf.readlines() 32 | text_string = [] 33 | for lines in text_str: 34 | text_string.append(lines.strip()) 35 | 36 | rating_list = [] 37 | for txt in text_string: 38 | small_list = txt.split(';') 39 | for word in small_list: 40 | if word.isalpha(): 41 | small_list.remove(word) 42 | rating_list.append(small_list) 43 | 44 | m_math, m_rus, m_eng = 0, 0, 0 45 | for i, ii in enumerate(rating_list): 46 | all_r = 0 47 | for j, jj in enumerate(ii): 48 | all_r += int(jj) 49 | m_all_r = all_r / len(ii) 50 | print(m_all_r) 51 | m_math += int(ii[0]) / len(rating_list) 52 | m_rus += int(ii[1]) / len(rating_list) 53 | m_eng += int(ii[2]) / len(rating_list) 54 | print(m_math, m_rus, m_eng) 55 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/file.txt: -------------------------------------------------------------------------------- 1 | w4V17t4c6Y16G19k13i20t17B11N7S19i11O14n8b5g12Y10Q12k14m8E2G1x14g9S11R19U12P5J14p20u12x16t12x8R19z14Z9U14T8S1L9 -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/file2.txt: -------------------------------------------------------------------------------- 1 | YUbY YUbY XYXUX Ta XXaUdUpUZ XYXUX YYTYXapcU TaTTcYaXd U XpdUaUdcb bbUaZZd bcbYT XXaUdUpUZ cXaU Yd TaTTcYaXd cUZa XXaUdUpUZ Ta Y UU pTUZTb bdda TpdYcTU bbUaZZd YYTYXapcU TpdYcTU bdda 2 | TdpX pbZdT UaUaUZcd Xdcb UaUaUZcd dXd YcbdU aTbbdc YaX T cZZdTb YaddUa XZXppcUpa 3 | T Z Z dacdbppap ZTZYpcaXa YpYaY cU Z XbUc UdUcb ZZTUbpY ZZadacba Z Ubab XbUc YdUUpp Tdac UTb X cXdXTX ZZXTYd apbppXpZ X Z UZTZpcT Z YaTZaZTdT dUbad baYU Z ZTcap ZYYdap X Z ZZadacba TXTpac cXdXTX XXZYUTdZ 4 | aY aY cppYXZ cppYXZ ad XYYpZbU cppYXZ pZpUX aY XYYpZbU XYYpZbU cppYXZ aZTdb Tcc XYYpZbU cppYXZ YYZ XdbbXY ppa Z XYYpZbU ad bXpcp cT YYZ aZcacYTc aZcacYTc YTpUUTa XXdXUTpYd aZTdb TX YUaX cpp XXdXUTpYd TT accYTTXUc b UUbZapY bc 5 | aXTc bTZc bTZc XT cpU Z ZTYca TX XT X d ac cXXppUZUp TU bTZc aTZb dc aTX baYT dpb ZTYca aZ bpXYcZaX dZ bTZc dZYYbXY cXdpXpU 6 | TcXbTd pTbaacT aT aX pX aX aX pc UZccYZb aX pXd aX aXYZT TY TabXbpd pYYpd TZbYUUUcp pbZbaZXT bdTa cdXT TcXbTd bccZXXcpT ZbUTUbYTZ TY YUbap p bpcpUaTY bZbTcXU ZcZU TYp aa 7 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.4 - Файловый ввод, вывод/file3.txt: -------------------------------------------------------------------------------- 1 | Fulton;43;81;61 2 | Faber;41;57;94 3 | Smith;51;41;70 4 | Marlow;79;34;72 5 | Garrison;36;72;64 6 | Durham;48;76;54 7 | Otis;31;75;88 8 | Hardman;90;69;92 9 | Hawkins;88;59;84 10 | Youmans;25;92;98 11 | Livingston;77;78;40 12 | Brooks;37;74;82 13 | Waller;97;26;58 14 | Pearcy;30;58;25 15 | Chandter;92;100;59 16 | Wainwright;93;24;30 17 | Calhoun;42;59;57 18 | Ward;67;33;46 19 | Oswald;30;25;90 20 | Clapton;41;67;79 21 | Daniels;57;77;65 22 | Jerome;86;25;84 23 | Babcock;32;84;90 24 | Dyson;70;82;94 25 | Lawman;47;29;36 26 | Dodson;98;91;82 27 | Foster;90;27;96 28 | Richards;93;91;96 29 | Stanley;72;82;92 30 | Hoggarth;40;27;95 31 | Abramson;88;71;72 32 | Paterson;98;47;86 33 | MacAdam;59;61;60 34 | Cook;100;26;48 35 | Miln;97;97;31 36 | Warren;63;69;78 37 | Fleming;34;85;67 38 | Sykes;77;76;58 39 | MacDonald;94;52;74 40 | Hamphrey;54;95;30 41 | Simpson;91;73;31 42 | Flatcher;59;58;98 43 | Reynolds;80;81;35 44 | Flannagan;53;67;78 45 | Baldwin;35;39;98 46 | Fane;32;65;84 47 | Douglas;30;82;65 48 | Dowman;53;70;73 49 | Walter;40;96;97 50 | Carroll;98;37;78 51 | Ramacey;39;32;47 52 | Wallace;37;29;77 53 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.5 - Модули, подключение модулей/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая подключает модуль math и, используя значение числа \piπ из этого модуля, находит для переданного ей на стандартный ввод радиуса круга периметр этого круга и выводит его на стандартный вывод. 12 | 13 | 14 | ''' 15 | 16 | import math 17 | 18 | r = float(input()) 19 | 20 | P = 2 * math.pi * r 21 | 22 | print(P) 23 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.5 - Модули, подключение модулей/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая запускается из консоли и печатает значения всех переданных аргументов на экран (имя скрипта выводить не нужно). Не изменяйте порядок аргументов при выводе. 12 | Для доступа к аргументам командной строки программы подключите модуль sys и используйте переменную argv из этого модуля. 13 | Пример работы программы: 14 | > python3 my_solution.py arg1 arg2 15 | arg1 arg2 16 | 17 | ''' 18 | 19 | import sys 20 | 21 | print(*sys.argv[1:], end=" ") 22 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.6 - Установка дополнительных модулей/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Скачайте файл. В нём указан адрес другого файла, который нужно скачать с использованием модуля requests и посчитать число строк в нём. 12 | 13 | Используйте функцию get для получения файла (имеет смысл вызвать метод strip к передаваемому параметру, чтобы убрать пробельные символы по краям). 14 | 15 | После получения файла вы можете проверить результат, обратившись к полю text. Если результат работы скрипта не принимается, проверьте поле url на правильность. Для подсчёта количества строк разбейте текст с помощью метода splitlines. 16 | 17 | В поле ответа введите одно число или отправьте файл, содержащий одно число. 18 | 19 | ''' 20 | 21 | import requests 22 | 23 | with open("file-1.txt") as inf: 24 | file_text = inf.readline().strip() 25 | 26 | 27 | get_request = requests.get(file_text) 28 | site_text = get_request.text 29 | 30 | split_site_text = site_text.splitlines() 31 | 32 | print(len(split_site_text)) 33 | 34 | # 242 35 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.6 - Установка дополнительных модулей/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Имеется набор файлов, каждый из которых, кроме последнего, содержит имя следующего файла. 12 | Первое слово в тексте последнего файла: "We". 13 | 14 | Скачайте предложенный файл. В нём содержится ссылка на первый файл из этого набора. 15 | 16 | Все файлы располагаются в каталоге по адресу: 17 | https://stepic.org/media/attachments/course67/3.6.3/ 18 | 19 | Загрузите содержимое последнего файла из набора, как ответ на это задание. 20 | 21 | ''' 22 | 23 | import requests 24 | 25 | with open("file-2.txt") as inf: 26 | file_text = inf.readline().strip() 27 | 28 | base_url = "https://stepic.org/media/attachments/course67/3.6.3/" 29 | stop_word = "We" 30 | split_site_text = ["text"] 31 | num_urls = 0 32 | 33 | while split_site_text[0] != stop_word: 34 | get_request = requests.get(file_text) 35 | site_text = get_request.text 36 | split_site_text = site_text.split() 37 | file_text = base_url + site_text 38 | num_urls += 1 39 | print("Number of url: %s" % num_urls) 40 | 41 | print() 42 | print(site_text) 43 | 44 | # We are the champions, my friends, 45 | # And we'll keep on fighting 'til the end. 46 | # We are the champions. 47 | # We are the champions. 48 | # No time for losers 49 | # 'Cause we are the champions of the world. -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.6 - Установка дополнительных модулей/file-1.txt: -------------------------------------------------------------------------------- 1 | https://stepic.org/media/attachments/course67/3.6.2/050.txt 2 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.6 - Установка дополнительных модулей/file-2.txt: -------------------------------------------------------------------------------- 1 | https://stepic.org/media/attachments/course67/3.6.3/699991.txt 2 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/1.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 1.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Напишите программу, которая принимает на стандартный вход список игр футбольных команд с результатом матча и выводит на стандартный вывод сводную таблицу результатов всех матчей. 12 | 13 | За победу команде начисляется 3 очка, за поражение — 0, за ничью — 1. 14 | 15 | Формат ввода следующий: 16 | В первой строке указано целое число nn — количество завершенных игр. 17 | После этого идет nn строк, в которых записаны результаты игры в следующем формате: 18 | Первая_команда;Забито_первой_командой;Вторая_команда;Забито_второй_командой 19 | 20 | Вывод программы необходимо оформить следующим образом: 21 | Команда:Всего_игр Побед Ничьих Поражений Всего_очков 22 | 23 | Конкретный пример ввода-вывода приведён ниже. 24 | 25 | Порядок вывода команд произвольный. 26 | 27 | ''' 28 | 29 | n = int(input()) 30 | 31 | d = {} 32 | 33 | for i in range(n): 34 | list_1 = str(input()).split(';') 35 | command = [] 36 | schet = [] 37 | for j in list_1: 38 | if j.isdigit(): 39 | schet.append(int(j)) 40 | if len(schet) > 1 and len(command) > 1: 41 | d[command[0]][0] += 1 42 | d[command[1]][0] += 1 43 | 44 | if schet[0] > schet[1]: 45 | d[command[0]][1] += 1 46 | d[command[1]][3] += 1 47 | d[command[0]][4] += 3 48 | 49 | elif schet[0] < schet[1]: 50 | d[command[1]][1] += 1 51 | d[command[0]][3] += 1 52 | d[command[1]][4] += 3 53 | 54 | elif schet[0] == schet[1]: 55 | d[command[0]][2] += 1 56 | d[command[1]][2] += 1 57 | d[command[0]][4] += 1 58 | d[command[1]][4] += 1 59 | else: 60 | command.append(j) 61 | if j not in d.keys(): 62 | d.update({j: [0, 0, 0, 0, 0]}) 63 | 64 | for key, value in d.items(): 65 | print(key, end=':') 66 | print(*value) 67 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/2.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 2.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Дополнительная 12 | В какой-то момент в Институте биоинформатики биологи перестали понимать, что говорят информатики: они говорили каким-то странным набором звуков. 13 | 14 | В какой-то момент один из биологов раскрыл секрет информатиков: они использовали при общении подстановочный шифр, т.е. заменяли каждый символ исходного сообщения на соответствующий ему другой символ. Биологи раздобыли ключ к шифру и теперь нуждаются в помощи: 15 | 16 | Напишите программу, которая умеет шифровать и расшифровывать шифр подстановки. Программа принимает на вход две строки одинаковой длины, на первой строке записаны символы исходного алфавита, на второй строке — символы конечного алфавита, после чего идёт строка, которую нужно зашифровать переданным ключом, и ещё одна строка, которую нужно расшифровать. 17 | 18 | Пусть, например, на вход программе передано: 19 | abcd 20 | *d%# 21 | abacabadaba 22 | #*%*d*% 23 | 24 | Это значит, что символ a исходного сообщения заменяется на символ * в шифре, b заменяется на d, c — на % и d — на #. 25 | Нужно зашифровать строку abacabadaba и расшифровать строку #*%*d*% с помощью этого шифра. Получаем следующие строки, которые и передаём на вывод программы: 26 | *d*%*d*#*d* 27 | dacabac 28 | 29 | ''' 30 | 31 | def encryption_decryption(text: str, orig_char: str, cod_char: str): 32 | result = "" 33 | list_text = list(text) 34 | list_orig_char = list(orig_char) 35 | list_cod_char = list(cod_char) 36 | 37 | for i, ii in enumerate(list_text): 38 | for j, jj in enumerate(list_orig_char): 39 | if ii == jj: 40 | list_text[i] = list_cod_char[j] 41 | result += list_text[i] 42 | 43 | return result 44 | 45 | 46 | if __name__ == '__main__': 47 | orig = input() 48 | cod = input() 49 | text_en = input() 50 | text_de = input() 51 | 52 | encryption = encryption_decryption(text_en, orig, cod) 53 | decryption = encryption_decryption(text_de, cod, orig) 54 | 55 | print(encryption) 56 | print(decryption) 57 | 58 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/3.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 3.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Простейшая система проверки орфографии может быть основана на использовании списка известных слов. 12 | Если введённое слово не найдено в этом списке, оно помечается как "ошибка". 13 | 14 | Попробуем написать подобную систему. 15 | 16 | На вход программе первой строкой передаётся количество dd известных нам слов, после чего на dd строках указываются эти слова. Затем передаётся количество ll строк текста для проверки, после чего ll строк текста. 17 | 18 | Выведите уникальные "ошибки" в произвольном порядке. Работу производите без учёта регистра. 19 | 20 | ''' 21 | 22 | count_words = int(input()) 23 | words_list = set() 24 | 25 | for i in range(count_words): 26 | word = str(input()).lower() 27 | words_list.add(word) 28 | 29 | count_lines = int(input()) 30 | word_for_check = set() 31 | 32 | for j in range(count_lines): 33 | line = str(input().lower()).split() 34 | word_for_check.update(line) 35 | 36 | for c_word in word_for_check: 37 | if c_word not in words_list: 38 | print(c_word) 39 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/4.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 4.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Группа биологов в институте биоинформатики завела себе черепашку. 12 | 13 | После дрессировки черепашка научилась понимать и запоминать указания биологов следующего вида: 14 | север 10 15 | запад 20 16 | юг 30 17 | восток 40 18 | где первое слово — это направление, в котором должна двигаться черепашка, а число после слова — это положительное расстояние в сантиметрах, которое должна пройти черепашка. 19 | 20 | Но команды даются быстро, а черепашка ползёт медленно, и программисты догадались, что можно написать программу, которая определит, куда в итоге биологи приведут черепашку. Для этого программисты просят вас написать программу, которая выведет точку, в которой окажется черепашка после всех команд. Для простоты они решили считать, что движение начинается в точке (0, 0), и движение на восток увеличивает первую координату, а на север — вторую. 21 | 22 | Программе подаётся на вход число команд nn, которые нужно выполнить черепашке, после чего nn строк с самими командами. Вывести нужно два числа в одну строку: первую и вторую координату конечной точки черепашки. Все координаты целочисленные. 23 | 24 | ''' 25 | 26 | n = int(input()) 27 | 28 | point = {"север": 0, "юг": 0, "запад": 0, "восток": 0} 29 | 30 | for i in range(n): 31 | input_string = input().split() 32 | point[input_string[0]] += int(input_string[1]) 33 | 34 | print(point['восток']-point['запад'], point['север']-point['юг']) 35 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/5.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python 3.10 программа решения заданий курса stepik программирование на Python 3 | Название файла 5.py 4 | 5 | Version: 0.1 6 | Author: Andrej Marinchenko 7 | Date: 2022-11-29 8 | """ 9 | 10 | ''' 11 | Дан файл с таблицей в формате TSV с информацией о росте школьников разных классов. 12 | 13 | Напишите программу, которая прочитает этот файл и подсчитает для каждого класса средний рост учащегося. 14 | 15 | Файл состоит из набора строк, каждая из которых представляет собой три поля: 16 | Класс Фамилия Рост 17 | 18 | Класс обозначается только числом. Буквенные модификаторы не используются. Номер класса может быть от 1 до 11 включительно. В фамилии нет пробелов, а в качестве роста используется натуральное число, но при подсчёте среднего требуется вычислить значение в виде вещественного числа. 19 | 20 | Выводить информацию о среднем росте следует в порядке возрастания номера класса (для классов с первого по одиннадцатый). Если про какой-то класс нет информации, необходимо вывести напротив него прочерк. 21 | 22 | В качестве ответа прикрепите файл с полученными данными о среднем росте. 23 | 24 | ''' 25 | 26 | with open("file - 5.txt") as inf: 27 | text_str = inf.readlines() 28 | text_string = [] 29 | class_dict = {"1": [0, 0], "2": [0, 0], "3": [0, 0], "4": [0, 0], "5": [0, 0], 30 | "6": [0, 0], "7": [0, 0], "8": [0, 0], "9": [0, 0], "10": [0, 0], "11": [0, 0]} 31 | 32 | for lines in text_str: 33 | text_string = lines.split() 34 | if text_string[0] in class_dict.keys(): 35 | class_dict[text_string[0]][0] += int(text_string[2]) 36 | class_dict[text_string[0]][1] += 1 37 | 38 | for key, value in class_dict.items(): 39 | if value[1] != 0: 40 | print(key, value[0]/value[1]) 41 | else: 42 | print(key, "-") 43 | -------------------------------------------------------------------------------- /3 - Функции. Словари. Интерпритатор. Файлы. Модули/3.7 - Задачи по материалам недели/file - 5.txt: -------------------------------------------------------------------------------- 1 | 4 Faber 141 2 | 10 Peacock 175 3 | 10 Daniels 167 4 | 4 Lawman 139 5 | 10 Bradshaw 167 6 | 11 Clifford 171 7 | 3 Foster 136 8 | 3 Hancock 132 9 | 2 Mansfield 133 10 | 5 Oldman 146 11 | 3 Donovan 132 12 | 7 Davidson 155 13 | 9 WifKinson 168 14 | 5 Chesterton 145 15 | 5 Flatcher 142 16 | 11 Young 174 17 | 3 Miers 132 18 | 1 Barnes 122 19 | 2 Freeman 133 20 | 8 Bootman 163 21 | 8 Clapton 165 22 | 11 Gill 175 23 | 1 Sykes 127 24 | 9 Quincy 166 25 | 1 Hancock 128 26 | 7 Harrison 160 27 | 7 Garrison 160 28 | 6 Holiday 152 29 | 3 Vaughan 137 30 | 5 Harrison 146 31 | 7 Carey 159 32 | 9 Hawkins 170 33 | 5 Bargeman 143 34 | 9 Young 171 35 | 6 Mason 158 36 | 11 Dean 178 37 | 4 Albertson 138 38 | 11 Mason 174 39 | 6 Miller 160 40 | 6 Mathews 159 41 | 11 Nevill 172 42 | 9 Wainwright 168 43 | 10 Bradberry 167 44 | 2 Osborne 135 45 | 11 Bootman 175 46 | 11 Dunce 173 47 | 7 Peacock 160 48 | 4 Kirk 142 49 | 3 Bradberry 130 50 | 6 Gardner 159 51 | 3 Marlow 130 52 | 6 Kirk 150 53 | 11 Warren 171 54 | 3 Wainwright 140 55 | 5 WifKinson 147 56 | 11 Vaughan 173 57 | 2 Francis 131 58 | 3 Roger 136 59 | 7 Barrington 163 60 | 9 Creighton 170 61 | 1 Kelly 122 62 | 9 Timmons 167 63 | 6 Chesterton 156 64 | 5 Adrian 142 65 | 7 Ogden 156 66 | 6 Chapman 155 67 | 4 Richards 143 68 | 11 Macduff 176 69 | 11 Macduff 175 70 | 9 Timmons 166 71 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Andrej Marinchenko 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | logo 5 | 6 | # Программирование на Python 7 | 8 |
9 | 10 | ## Как это работает? 11 | 12 | Все очень просто: переходи по [ссылке](https://stepik.org/course/67/syllabus) курса и учись, а если уже все идеи при решении практических задач закончились, обращайся к моим подсказкам. 13 | 14 | ## Порядок подготовки и работы с ботом 15 | 16 | 1. Клонировать репозиторий либо скачать архив из github или при помощи следующих команд в командной строке 17 | ```commandline 18 | $ cmd 19 | $ git clone https://github.com/BEPb/stepik_python 20 | $ cd stepik_python 21 | ``` 22 | 23 | 2. Создать виртуальное окружение Python. 24 | 3. Установить все необходимые пакеты для работы нашего кода, при помощи следующей команды: 25 | 26 | ``` 27 | pip install -r requirements.txt 28 | ``` 29 | 30 | 4. Цель этого репозитория, помочь начинающему программисту получить знания, ну и как награду сертификат 31 | 32 | sertificate 33 | -------------------------------------------------------------------------------- /art/stepik_Python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/stepik_python/aba50af8157dba845fe7315dbfd9f00283119060/art/stepik_Python.png -------------------------------------------------------------------------------- /art/stepik_logotype_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/stepik_python/aba50af8157dba845fe7315dbfd9f00283119060/art/stepik_logotype_green.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/stepik_python/aba50af8157dba845fe7315dbfd9f00283119060/requirements.txt --------------------------------------------------------------------------------