我是编程新手,所以请放轻松。 我在理解这种if语句和while循环时遇到了问题:
command = input()
if command != "l" or command != "h" or command != "c"
print("Please insert l, h or c: ")
command = str(input("l, h or c: "))
else:
print("working")
我不明白为什么'h'
或'c'
未被检查。当我在我的IDE上尝试这个时,我得到:
l
Please insert l, h, or c:
l, h or c:
答案 0 :(得分:4)
你可以试试这个:
command = input()
if command not in ('l','h','c'):
print("Please insert l, h or c: ")
command = input("l, h or c: ")
else:
print("working")
in将检查命令是否在字符串列表
内答案 1 :(得分:3)
你的布尔逻辑混淆了。
如果command
为l
,则它不等于h
或c
;这使您的if
语句成立:
False (!= l) or True (!= h) or True (!= c) == True
当两个选项中的一个为真时, or
为True,并且对于您的测试,至少有3个选项中的2个始终为真,可能为3个。
您想要使用and
代替:
if command != "l" and command != "h" and command != "c":
或在3上使用not
或使用==
相等的测试:
if not (command == "l" or command == "h" or command == "c"):
或更好,更易读,使用not in
来测试一组选项:
if command not in {'l', 'h', 'c'}:
答案 2 :(得分:1)
执行if command not in {"l","h","c"}:
,它会检查您输入的内容是否在该集