книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 109. Магические даты## # Определяем все магические даты в XX веке # from days_in_month import daysInMonth ## Определяем, является ли дата магической # @param day – день в дате # @param month – месяц в дате
# @param year – год в дате # @return True, если дата является магической, иначе False def isMagicDate(day, month, year): if day * month == year % 100: return True return False # Находим и отображаем все магические даты XX века def main(): for year in range(1900, 2000): for month in range(1, 13): for day in range(1, daysInMonth(month, year) + 1): if isMagicDate(day, month, year): print("%02d/%02d/%04d – магическая дата." % (day, month, year)) # Вызов основной функции main() Глава 13 СпискиУпражнение 110. Порядок сортировки## # Выводим числа, введенные пользователем, в порядке возрастания # # Начинаем с пустого списка data = [] # Считываем значения и добавляем их в список, пока пользователь не введет ноль num = int(input("Введите целое число (0 для окончания ввода): ")) while num != 0: data.append(num) num = int(input("Введите целое число (0 для окончания ввода): ")) # Сортируем значения data.sort() Вызов метода sort применительно к списку переставляет значения в нем, располагая их в нужном нам порядке. В данном случае этот способ подходит, поскольку нам нет необходимости сохранять копию исходного списка. Для создания копии исходного списка с отсортированными элементами можно воспользоваться функцией sorted. Вызов этой функции не оказывает влияния на порядок следования элементов в исходном списке, а значит, ее стоит использовать, когда в дальнейшем вам пригодятся обе версии списка: исходный и отсортированный в нужном вам порядке. # Выводим числа в порядке возрастания print("Введенные числа в порядке возрастания:") for num in data: print(num) Упражнение 112. Удаляем выбросы## # Удаляем выбросы из набора данных # ## Удаляем выбросы из списка значений # @param data – список значений для обработки # @param num_outliers – количество наименьших и наибольших элементов для удаления # @return копия исходного списка с отсортированными значениями и # удаленными наименьшими и наибольшими элементами def removeOutliers(data, num_outliers): # Создаем копию списка с отсортированными значениями retval = sorted(data)
# Удаляем num_outliers наибольших значений for i in range(num_outliers): retval.pop() # Удаляем num_outliers наименьших значений for i in range(num_outliers): retval.pop(0) # Возвращаем результат return retval # Запрашиваем данные у пользователя и удаляем по два наибольших и наименьших значения def main(): # Запрашиваем данные у пользователя, пока он не оставит ввод пустым values = [] s=input("Введите значение (Enter для окончания ввода): ") while s != "": num = float(s) values.append(num) s = input("Введите значение (Enter для окончания ввода): ") # Отображаем результат или соответствующее сообщение об ошибке if len(values) < 4: print("Вы ввели недостаточное количество чисел.") else: print("Список с удаленными выбросами: ", \ removeOutliers(values, 2)) print("Исходный список: ", values) # Вызов основной функции main() Упражнение 113. Избавляемся от дубликатов## # Считываем ряд слов, введенных пользователем, и выводим их без дубликатов # в том же порядке, в котором они были введены # # Запрашиваем слова у пользователя и сохраняем их в список words = []
word = input("Введите слово (Enter для окончания ввода): ") while word != "": # Добавляем слово в список, только если # оно уже не присутствует в нем if word not in words: words.append(word) # Запрашиваем следующее слово у пользователя word = input("Введите слово (Enter для окончания ввода): ") # Отображаем уникальные слова for word in words: print(word) |