Как я могу прервать цикл, пока raw_input ()?питон 3 - PullRequest
0 голосов
/ 19 декабря 2018

Мне нужна помощь, чтобы понять разницу между следующим.В первом примере я хочу, чтобы цикл прерывался, когда пользователь вводит False:

true = True

while true:
    print("Not broken")
    true = input("to break loop enter 'False' ")

Был задан вопрос: как мне разорвать бесконечный цикл while с пользовательским вводом

Что дает это решение:

true= True

while true:
    print("Not broken")
    true = input("to break loop enter 'n' ")
    if true == "n":
        break
    else:
        continue

И я не понимаю, почему первый метод не работает, а второй работает ???Почему Python не принимает входные данные так, как если бы кто-то менял сценарий и изменял переменную «true»?Что происходит за кулисами?

Любая помощь будет оценена.Заранее спасибо:)

1 Ответ

0 голосов
/ 19 декабря 2018

Оператор while является условным, и пользователь, вводящий строку «Ложь», по-прежнему будет принимать значение «Истина».

Чтобы узнать, что Python считает Истиной и Ложью, перейдите по этой ссылке: https://realpython.com/python-conditional-statements/

Опираясь на этот ответ Преобразование строки в логическое значение в Python? , лучший способ проверить это:

true = True

while true is not 'False':
    print("Not broken")
    true = input("to break loop enter 'False' ")
...