循环python"if"语句

Jer*_*Rea -1 python loops if-statement python-3.x

我正在构建一种问题序列作为Python 3.2中程序的一部分.基本上,我提出一个问题并等待两种可能性之间的答案.如果给定的答案不是两个选项的一部分,我打印一行,并希望重新问问题,直到给出正确的输入,然后继续下一个问题并重复相同的顺序.

这里有一段代码可能更好地解释自己:

colour = input("black or white?")
if colour in ["black", "white"]:
    print("Thank you")
else:
    print("Please choose one or the other")
Run Code Online (Sandbox Code Playgroud)

换句话说,如果给定的答案不是黑色或白色,我想打印"请选择一个或另一个",并重新提出问题,只要没有给出黑色或白色.一旦给出黑色或白色,我希望它突破if语句,以便我可以用同样的方式提出另一个问题.

我已经搜索了如何做到这一点,但没有找到任何有用的东西.我猜一个循环,但是当我尝试它时,只是无限地吐出我最后一个打印字符串.

Lev*_*von 6

while True:
  colour = input("black or white? ")
  if colour in ("black", "white"):
    print("Thank you")
    break
  else:
    print("Please choose one or the other")
Run Code Online (Sandbox Code Playgroud)

保留大部分代码,将其包装在一个无限循环中,并在输入正是您要查找的时候突破它.

注意,成员资格的测试使用a tuple而不是a,list因为选择不会改变,即是不可变的并且in ("black", "white")使其显式化.


dfb*_*dfb 5

colour = None
while not colour in ["black", "white"]:
    colour = input("black or white?")

print("Thank you")
Run Code Online (Sandbox Code Playgroud)

或者如果你想获得幻想

colour = input("black or white?")
while not colour in ["black", "white"]:
    print("Please choose one or the other")
    colour = input("black or white?")

print("Thank you")
Run Code Online (Sandbox Code Playgroud)