Допоможіть написати програму на мові Python бо геть не розумію як правильно його написати даю 100 балів!!! Буду дуже вдячний!!!
Деякий зоопарк визначає вартість відвідування на базі віку гостей. Відвідувачі до 3 років допускаються безкоштовно. Діти від 3 до 12 років сплачують ₴48.00. Квиток для пенсіонерів (понад 60 років) коштує ₴50.00, а для решти відвідувачів - ₴85.00.
№1
Напишіть програму, яка зчитує вік кожного відвідувача з групи, кожне значення з нового рядка. Завершенням вводу вважається порожній рядок, тобто в групі більше нікого немає. Після цього програма має обчислити вартість квитків для всієї групи. Якщо в групі понад 10 осіб, зоопарк пропонує 10% знижки. Загальна вартість виводиться з двома десятковими знаками після крапки.
Answers & Comments
Ответ:
fares = {i:0 for i in range(0,3)}|{i:48 for i in range(3,13)}|{i:85 for i in range(13,61)}|{i:50 for i in range(61,201)}
discount = 10
count_of_visitor_for_discount = 10
visitors = []
while(True):
x = input("What is the age of a visitor? ")
if x.isdigit():
visitors.append(int(x))
else: break
amount_to_pay = 0
for person in visitors:
amount_to_pay += fares[person]
amount_to_pay = amount_to_pay * (1-discount/100) if len(visitors) > count_of_visitor_for_discount else amount_to_pay
print("{:.2f}".format(amount_to_pay))
Объяснение:
В первом блоке задаём вводные. Через словарь перечисляем все возраста и соответствующие ценники на билет. Там же объявляем скидку и условие для скидки.
Во втором блоке считываем данные и собираем в лист visitors. Проверяем, что введённые данные это число, если не число, прерываем бесконечный цикл ввода.
В третьем блоке делаем расчёты. Идём по листу и суммируем стоимости билета для каждого. Стоимость берём из словаря. Далее, если в листе больше элементов чем в условии для получения скидки, то считаем скидку на результирующую сумму.
Выводим с двумя знаками после запятой.