В вашем случае True
никогда не изменится на False
, что приведет к завершению цикла.
Изменение последнего предложения if
на if str(idiot) == '0'
поможет, потому что input()
всегда возвращаетstr
и вы указали int
(0 вместо '0').
while True:
idiot = input('Continue Y/N?: ')
idiot = idiot.upper()
if idiot == ('Y'):
print('Great')
if idiot == ('N'):
print('okey')
if idiot == '0':
print('exit')
break
В любом случае я всегда использую циклы while
с переменной, которая содержит логическое значение (True / False).
С помощью переменной TrueOrFalse
я могу установить ее на False
, как только условие будет выполнено.
Вот как я бы это сделал:
TrueOrFalse = True
while TrueOrFalse:
idiot = input('Continue Y/N?: ')
idiot = idiot.upper()
if idiot == ('Y'):
print('Great')
if idiot == ('N'):
print('okey')
if idiot == '0':
TrueOrFalse = False
print('exit')
Еще одна вещь: я знаю, что это всего лишь пример, но ваш input()
запрашивает только «Y» или «N», а «0» отсутствует. В любом случае, я предполагаю, что «N» должен сделать (выйти из цикла) то, что сейчас делает «0».