While loop 如何防止布尔while循环中的无限循环?

While loop 如何防止布尔while循环中的无限循环?,while-loop,boolean,infinite-loop,While Loop,Boolean,Infinite Loop,我有这样的代码: maybeYes = raw_input("Please enter Yes to continue.") if maybeYes != "Yes": print "Try again." # ask for input again else: pass 我应该在我想让它再次请求输入的地方填写什么?您应该直接在循环中进行原始输入 while True: result = raw_input("...")

我有这样的代码:

maybeYes = raw_input("Please enter Yes to continue.")
    if maybeYes != "Yes":
        print "Try again."
        # ask for input again
    else:
        pass

我应该在我想让它再次请求输入的地方填写什么?

您应该直接在循环中进行原始输入

while True:
    result = raw_input("...")
    if result != "Yes":
        print "Try again."
        continue
    else:
        break

在我看来,你想要一个无限循环

maybeYes = raw_input("Please enter Yes to continue.")
while maybeYes != "Yes":
    maybeYes = raw_input("Please try again.")
但是,您始终可以添加计数器/转义符

maybeYes = raw_input("Please enter Yes to continue.")
attempts = 0
while maybeYes != "Yes" and attempts < 10:
    maybeYes = raw_input("Please try again.")
    attempts += 1
这将循环打印错误,直到用户键入yes、yes、yes、yes或yes,因为在检查yes之前,输入将转换为全大写,然后您的代码可以继续

while raw_input("Please enter Yes to start: ").upper() != 'YES':
       print 'Wrong'

print 'Correct'

#Carry on here 
输出:

Please enter Yes to start: nowg
Wrong
Please enter Yes to start: wggwe
Wrong
Please enter Yes to start: Yes
Correct

不知道为什么这被否决了,它不仅是正确的,而且比目前的其他两个答案更干净、更有力?可能是因为人们开始喜欢否决我猜通过这句话-会给你声誉,你试图说…会增加你作为一个提问者的声誉,而不是分数