【发布时间】:2018-11-10 22:18:38
【问题描述】:
当我运行这段代码时,即使输入“1”或“2”或“3”,我的代码仍然会运行 while 循环。如何更改我的代码,使其仅在用户未输入“1”、“2”或“3”时运行 while 循环?非常感谢!
column=input("What column is your card in? Please enter either '1', '2' or '3':")
while column != "1" or "2" or "3":
print("That is an invalid choice. You must enter either '1' or '2' or '3'")
column=input("What column is your card in? Please enter either '1', '2' or '3':")
print(column)
【问题讨论】:
-
使用
column not in {'1', '2', '3'};计算机不是人类,英语语法对计算机来说很难。 -
问题是条件实际上是真的,因为它不是你所期望的。 “条件!= 1”部分评估,然后与或“2”组合。现在,布尔值接受并使用字符串,非空字符串被认为是真实的。将其与内部“或”的以下功能结合起来:对于“或”运算符,如果左值为真,则返回,否则如果左值为假,则返回右值。你去吧。希望有帮助。由于“或”2,整体条件将始终评估为 True。
-
非常感谢!我的代码现在可以使用@MartijnPieters
标签: python-3.x loops while-loop