книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 114. Отрицательные, положительные и нули## # Запрашиваем коллекцию целых чисел у пользователя. Отображаем сначала отрицательные, # затем нули и после этого положительные # # Создаем три списка для хранения отрицательных, нулевых и положительных значений negatives = [] zeros = [] positives = [] В данном решении используется отдельный список для хранения введенных пользователем нулей. Но в этом нет особой необходимости, поскольку нули все одинаковые. Достаточно было бы хранить количество введенных пользователем нулей и при выводе отображать их столько, сколько надо. # Запрашиваем числа у пользователя, помещая их в соответствующие списки line = input("Введите целое число (Enter для окончания ввода): ") while line != "": num = int(line) if num < 0: negatives.append(num) elif num > 0: positives.append(num) else: zeros.append(num) # Запрашиваем следующее число у пользователя line = input("Введите целое число (Enter для окончания ввода): ") # Выводим сначала отрицательные числа, затем нули и после этого положительные print("Введенные числа: ") for n in negatives: print(n) for n in zeros: print(n) for n in positives: print(n) Упражнение 116. Совершенные числа## # Целое число n называется совершенным, если сумма всех его собственных делителей # равна самому числу n # Покажем все совершенные числа от 1 до LIMIT. # from proper_divisors import properDivisors LIMIT = 10000 ## Определяем, является ли число совершенным
# @param n – число, которое необходимо проверить на совершенство # @return True, если число совершенно, иначе False def isPerfect(n): # Получим список собственных # делителей числа divisors = properDivisors(n) # Рассчитываем их сумму total = 0 for d in divisors: total = total + d # Определяем, является ли число совершенным, и возвращаем результат if total == n: return True return False # Отображаем все совершенные числа от 1 до LIMIT. def main(): print("Совершенные числа от 1 до", LIMIT, ":") for i in range(1, LIMIT + 1): if isPerfect(i): print(" ", i) #Call the main function main() Упражнение 120. Форматирование списка## # Отображаем перечень введенных слов через запятую и с союзом "и" между # последними двумя словами # ## Форматируем список с запятыми и союзом "и" #@param items – список элементов для форматирования #@return строка с установленными правилами форматирования def formatList(items): # Отдельно рассматриваем пустой список и список из одного элемента if len(items) == 0: return "<пусто>" if len(items) == 1: return str(items[0]) # Идем по всем элементам списка, за исключением двух последних result = "" for i in range(0, len(items) – 2): result = result + str(items[i]) + ", " Каждый введенный элемент мы явным образом преобразуем в строку путем вызова функции str перед выполнением форматирования. Это позволит функции formatList корректно обрабатывать не только строковые элементы, но и числовые. # Добавляем к строке два последних элемента, разделенных союзом "и" result = result + str(items[len(items) – 2]) + " и " result = result + str(items[len(items) – 1]) # Возвращаем результат return result # Запрашиваем у пользователя слова и форматируем их def main(): # Запрашиваем у пользователя слова, пока не будет пропущена строка ввода items = [] line = input("Введите слово (Enter для окончания ввода): ") while line != "": items.append(line) line = input("Введите слово (Enter для окончания ввода): ") # Форматируем и отображаем результат print("Введенные элементы: %s." % formatList(items)) # Вызов основной функции main() Упражнение 121. Случайные лотерейные номера## # Собираем уникальные случайные номера для лотерейного билета # from random import randrange
MIN_NUM = 1 MAX_NUM = 49 NUM_NUMS = 6 # Используем список для хранения номеров лотерейного билета ticket_nums = [] # Генерируем NUM_NUMS случайных, но уникальных значений for i in range(NUM_NUMS): # Генерируем номер, которого еще нет в списке rand = randrange(MIN_NUM, MAX_NUM + 1) while rand in ticket_nums: rand = randrange(MIN_NUM, MAX_NUM + 1) # Добавляем номер к билету ticket_nums.append(rand) # Сортируем номера по возрастанию и отображаем их ticket_nums.sort() print("Номера вашего билета: ", end="") for n in ticket_nums: print(n, end=" ") print() |