Работаю над программой для покупки билетов в кино. Пытаюсь выяснить, может быть, мне нужен цикл while для того, что я пытаюсь выполнить?

#python #python-3.x

#python #python-3.x

Вопрос:

Я работаю над программой для билетов в кино. Программа должна вычислить цену билета в театр. Программа должна запрашивать у пользователя возраст посетителя и является ли фильм 3D. Дети и пожилые люди должны получать скидку. За фильмы в формате 3D должна взиматься дополнительная плата. Программа должна вывести цену билета на билет в кино на основе введенного возраста и того, показан ли фильм в 3D. У меня есть половина программы для работы. Дети и пожилые люди получают скидки.

Я почти завершил программу, но когда я спрашиваю, является ли фильм 3D или нет, он выводит то же самое для ответов «Да» и «Нет». Когда пользователь вводит «Нет», я хочу, чтобы он сказал, что цена билета остается прежней. И, когда они вводят «Да», он должен показать новую цену билета для 3D. Он уже выполняет правильные действия при вводе «Да», но проблема в том, что он выдает тот же результат при вводе «Нет» Не уверен, нужно ли мне хранить yes и no в другой переменной или, может быть, в цикле while? Может кто-нибудь указать мне правильное направление, пожалуйста? Любая помощь приветствуется.

 age = int(input("Welcome to the movie theatre. What is your age? Children and senior citizens will receive a discount.   "))

children_ticket = 8

adult_ticket = 10

senior_ticket = 8

if age <= 12:
    print("The children's ticket costs"  ,children_ticket)
    
if age >= 65:
    print("The senior citizens ticket costs" ,senior_ticket)

if (age >= 13) and (age <= 64):
    print("The adult ticket costs" ,adult_ticket)


three_d = input("Is the movie you're watching 3D? If so, they have a surcharge.  ")

three_d_surcharge = 2

if age <= 12:
    print("The children's ticket for 3D costs"  ,children_ticket   three_d_surcharge)
    
if age >= 65:
    print("The senior citizens ticket for 3D costs" ,senior_ticket   three_d_surcharge)

if (age >= 13) and (age <= 64):
    print("The adult ticket for 3D costs" ,adult_ticket   three_d_surcharge)

  

Результаты 3D-билетов в кино

Ответ №1:

Вам нужно обернуть результат three_d в оператор if, the .lower() позволяет использовать более широкий диапазон ввода, если пользователь вводит Yes , например

 age = int(input("Welcome to the movie theatre. What is your age? Children and senior citizens will receive a discount.   "))

children_ticket = 8

adult_ticket = 10

senior_ticket = 8

if age <= 12:
    print("The children's ticket costs", children_ticket)

if age >= 65:
    print("The senior citizens ticket costs", senior_ticket)

if (age >= 13) and (age <= 64):
    print("The adult ticket costs", adult_ticket)

three_d = input("Is the movie you're watching 3D? If so, they have a surcharge.  ")

three_d_surcharge = 2

if three_d.lower() == "yes":
    if age >= 65:
        print("The senior citizens ticket for 3D costs", senior_ticket   three_d_surcharge)
    elif age > 12:
        print("The adult ticket for 3D costs", adult_ticket   three_d_surcharge)
    else:
        print("The children's ticket for 3D costs", children_ticket   three_d_surcharge)
else:
    print("No 3d surcharge")
  

Вы также можете изменить способ работы проверок if, чтобы было меньше проверок.

Ответ №2:

вы должны выполнить оператор if else для three_d переменной. Что-то вроде

 if three_d=='yes':
    ...
else:
    print("the price of the ticket stays the same")