Подскажите, правильно ли я понял и выполнил задание из учебника "Изучаем Python" Эрик Мэтиз
Как нужно/можно было выполнить задание 7.5 в соответствии с пройденной главой. Знаю что есть масса вариантов, но какие то усовершенствования не интересуют, т.к. эти варианты еще не изучены, хочется знать правильно ли я усваиваю материал или же использую топорные и банальные способы из других глав. (Глава 7 стр.128, задание стр.138) "Изучаем Python" Эрик Мэтиз
Здание: 7.5. Билеты в кино: кинотеатр установил несколько вариантов цены на билеты в зависимости от возраста посетителя. Для посетителей младше 3 лет билет бесплатный; в возрасте от 3 до 12 билет стоит $10; наконец, если возраст посетителя больше 12, билет стоит $15. Напишите цикл, который предлагает пользователю ввести возраст и выводит цену билета.
Что получилось у меня:
age = 'Введите свой возраст, чтобы узнать цену билета: '
while age:
message = input(age)
message = int(message)
if message < 3:
print("Стоимость билета 0 рублей")
break
elif message >=3 and message < 12:
print("Стоимость билета 1000 рублей.")
break
else:
print("Стоимость билета 1500 рублей.")
break
Ответы (2 шт):
print("-" * 50 + "\nПродажа билетов в кино:\n" + "-" * 50)
while True:
ok = True
age = input("\nУкажите свой возраст для того, чтоб узнать цену билета: ")
try:
age = abs(int(float(age.replace(",", "."))))
except Exception as e:
print(f"Указано ошибочное значение возраста! Попробуйте ещё раз! Подробнее: {e}")
ok = False
if ok:
if age < 3: print("Билет бесплатен!")
elif age >= 3 and age <= 12: print("Стоимость билета $10!")
else: print("Стоимость билета $15!")
- как написали в комментариях,
break
стоит убрать. - получение возврата можно записать красивее:
age = int(input())
(и везде вместоmessage
использоватьage
) - во втором
if'е можно убрать условие
age >= 3`, т. к. оно следует из того, что первое условие не выполнилось. - можно создать переменную
cost
, чтобы убрать повторенияprint
'а.
message = "Введите свой возраст, чтобы узнать цену билета: "
while True:
age = int(input(message))
if age < 3:
cost = 0
elif age < 12:
cost = 1000
else:
cost = 1500
print(f"Стоимость билета {cost} рублей.")