【发布时间】:2019-07-13 09:21:16
【问题描述】:
这段代码不起作用
rsp = input("Please enter a command: ").strip()
while rsp.lower() != "e" or rsp.lower() != "b":
print("Invalid response, please try again!\n")
rsp = input("Please enter a command: ").strip()
但是这个可以
while True:
rsp = input("Please enter a command: ").strip()
if rsp.lower() == "e" or rsp.lower() == "b":
break
print("Invalid response, please try again.\n")
有人可以解释为什么第一个代码不起作用。当我输入“e”或“b”时,我仍然卡在 while 循环中。
【问题讨论】:
-
好好想想你的布尔条件的逻辑:) 你想要
and而不是or。 [换句话说,and语句的逆语句是每个语句的否定之间的or。如果您有兴趣,请查阅德摩根定律] -
相关阅读:en.wikipedia.org/wiki/De_Morgan%27s_laws。练习:
a or b的反义词是什么?not a or not b的反义词是什么?
标签: python loops input while-loop