如何检查输入是否与一组所需的值匹配而不重复自己?

时间:2016-01-16 05:46:03

标签: python boolean

我希望能够做到这样的事情,输入1," D"或"狗"将全部调用do_something(),而任何其他输入将调用do_something_else()

command = input("Type a command")
if command == (1 or "D" or "dog"):
   do_something()
else:
    do_something_else()

目前,这不起作用,因为Python正在评估(1 or "D" or "dog")的真实性,当然总是True。然后,由于command也是一个真正的字符串,因此将始终调用do_something

我知道如何做到这一点: if command == 1 or command = "D" or command = "dog"。这很好用;然而,它涉及很多重复,我确信必须有一些方法来缩短它。

我想我也可以列出有效的命令valid_commands = [1,"D","dog"]并检查if command in valid_commands,但这似乎是一种解决方法,而不是理想的方法。

1 个答案:

答案 0 :(得分:1)

您应该使用in运算符:

command = input("Type a command")
if command in ["1","D","dog"]:
   do_something()
else:
   do_something_else()