无法从while循环中爆发

时间:2019-11-06 14:16:39

标签: python-3.x while-loop break

我绝对是python的初学者,这是我遇到麻烦的代码。 所以问题是当我按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

1 个答案:

答案 0 :(得分:1)

在您的情况下,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循环与包含布尔值(真/假)的变量一起使用。

使用变量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'现在正在做的事情。