如何检查输入是否是字母' l',' h'或者' c'

时间:2018-01-21 13:27:31

标签: python python-3.x

我是编程新手,所以请放轻松。 我在理解这种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: 

3 个答案:

答案 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)

你的布尔逻辑混淆了。

如果commandl,则它不等于hc;这使您的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"}:,它会检查您输入的内容是否在该集