Как мне использовать команду continue, чтобы избежать бесконечного l oop in python? - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь заставить программу принять значение возраста, распечатать ответ о цене билета, а затем вернуться обратно к приглашению для ввода, чтобы запросить другой возраст.

Каждый раз, когда я ввожу данные о возрасте, я получаю бесконечное число l oop? Как я могу подойти к этому по-другому? продолжит ли помощь?

Извинения за небрежное форматирование и т. Д .; это мой первый пост о переполнении стека и я

ticket_age = input("\nTell me your age and I will sell you a ticket")


active = True
while active:
    age = int(ticket_age)

    if age < 3:
        print("You get a free ticket")


    elif age >= 3 and age <= 12:
        print("That will be $10 please")

    elif age > 12:
        print("That will be $15 please")

Ответы [ 4 ]

0 голосов
/ 25 марта 2020

Вы должны использовать ввод внутри l oop, чтобы выполнить это


while True:
    ticket_age = input("\nTell me your age and I will sell you a ticket")
    age = int(ticket_age)

    if age < 3:
        print("You get a free ticket")


    elif age >= 3 and age <= 12:
        print("That will be $10 please")

    elif age > 12:
        print("That will be $15 please")
0 голосов
/ 25 марта 2020

Попробуйте это ниже:

ticket_age = input("\nTell me your age and I will sell you a ticket")


active = True
while active:
    age = int(ticket_age)

    if age < 3:
        print("You get a free ticket")


    elif age >= 3 and age <= 12:
        print("That will be $10 please")

    elif age > 12:
        print("That will be $15 please")

    else:
        break
0 голосов
/ 25 марта 2020

Добро пожаловать! Как говорится в комментариях, нам нужно больше информации о том, что вы собираетесь делать. Если это просто простая проверка, то вам даже не нужно пока l oop. Вы можете просто использовать операторы if или, если вы хотите l oop, вы можете l oop через несколько входов. В вашем случае вы можете выйти, установив для активного значения значение false. В противном случае, как несколько указателей: в таких циклах, которые вы используете, вам не нужно устанавливать active = True, а затем while active:, вы можете просто сделать while True:. Но вам придется выйти из него как-то иначе. Вы также можете напрямую преобразовать ввод после его получения, например ticket_age = int(input("\nTell me your age and I will sell you a ticket")) или str(input(..)). Для второго l oop вы можете использовать такой синтаксис: if 3 <= number <= 12:.

0 голосов
/ 25 марта 2020

В вашей программе вы должны изменить значение переменной active на false где-то внутри вашего while l oop, чтобы разбить его.

...