книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Глава 11 ПовторенияУпражнение 66. Никаких центов## # Вычислить полную сумму покупки. Сумму для уплаты наличными округлить до # ближайших пяти центов, поскольку одноцентовые монеты выведены из обращения # PENNIES_PER_NICKEL = 5 NICKEL = 0.05 Хотя очень маловероятно, что в будущем в пятицентовой монете может оказаться больше пяти центов, мы все равно используем в программе переменные на случай, если когда-то нужно будет адаптировать ее для использования с другими номиналами монет. # Собираем общую сумму total = 0.00 # Запрашиваем цену первого товара как строку line = input("Введите цену товара (пустая строка для выхода): ") # Продолжаем запрашивать цены товаров, пока строка не будет оставлена пустой while line != "": # Добавляем цену в общей сумме (после перевода ее в число с плавающей запятой) total = total + float(line) # Запрашиваем цену следующего товара line = input("Введите цену товара (пустая строка для выхода): ") # Показываем полную сумму к оплате print("Полная сумма к оплате: %.02f" % total) # Считаем, сколько центов осталось бы, если бы мы оплатили всю покупку 5–центовыми # монетами rounding_indicator = total * 100 % PENNIES_PER_NICKEL if rounding_indicator < PENNIES_PER_NICKEL / 2: # Если оставшаяся сумма центов меньше 2,5, округляем значение путем вычитания # полученного количества центов из общей суммы cash_total = total – rounding_indicator / 100 else: # Иначе добавляем 5 центов и затем вычитаем нужное количество центов cash_total = total + NICKEL – rounding_indicator / 100 # Выводим итоговую сумму для оплаты print("Сумма для оплаты наличными: %.02f" % cash_total) Упражнение 67. Найти периметр многоугольника## # Рассчитаем периметр многоугольника, построенного на основании координат точек, # введенных пользователем. Пустая строка завершает ввод данных # from math import sqrt # Переменная для хранения периметра многоугольника perimeter = 0 # Запрашиваем координаты первой точки first_x = float(input("Введите первую координату X: ")) first_y = float(input("Введите первую координату Y: ")) # Инициализируем координаты предыдущей точки начальными значениями prev_x = first_x prev_y = first_y # Запрашиваем остальные координаты line = input("Введите следующую координату X (Enter для окончания ввода): ") while line != "": # Преобразуем координату X в число и запрашиваем координату Y x = float(line) y = float(input("Введите следующую координату Y: ")) # Рассчитываем расстояние до предыдущей точки и добавляем к периметру dist = sqrt((prev_x – x) ** 2 + (prev_y – y) ** 2) perimeter = perimeter + dist
# Устанавливаем значения предыдущих координат # для следующей итерации prev_x = x prev_y = y # Запрашиваем следующую координату X line = input("Введите следующую координату X (Enter для окончания ввода): ") # Рассчитываем расстояние от последней точки до первой и добавляем к периметру dist = sqrt((first_x – x) ** 2 + (first_y – y) ** 2) perimeter = perimeter + dist # Отображаем результат print("Периметр многоугольника равен", perimeter) Упражнение 69. Билеты в зоопарк## # Рассчитать стоимость посещения зоопарка для группы # # Константы для хранения цен на разные категории билетов BABY_PRICE = 0.00 CHILD_PRICE = 14.00 ADULT_PRICE = 23.00 SENIOR_PRICE = 18.00 # Сохраним как константы возрастные ограничения BABY_LIMIT = 2 CHILD_LIMIT = 12 ADULT_LIMIT = 64 # Переменная для хранения общей суммы посещения total = 0 # Читаем ввод пользователя до пустой строки line = input("Введите возраст посетителя (пустая строка для окончания ввода): ") while line != "": age = int(line)
# Добавляем цену билета к общей сумме if age <= BABY_LIMIT: total = total + BABY_PRICE elif age <= CHILD_LIMIT: total = total + CHILD_PRICE elif age <= ADULT_LIMIT: total = total + ADULT_PRICE else: total = total + SENIOR_PRICE # Считываем возраст следующего посетителя line = input("Введите возраст посетителя (пустая строка для окончания ввода): ") # Отображаем сумму группового посещения с правильным форматированием print("Сумма посещения зоопарка для этой группы составит $%.2f" % total) |