如何检查一个输入是否匹配一组期望值而不重复我自己?

2024-06-28 21:38:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够这样做,输入1,“D”或“dog”都将调用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,但这似乎是一种解决方法,而不是理想的方法


Tags: or方法字符串trueinputiftypedo
1条回答
网友
1楼 · 发布于 2024-06-28 21:38:09

应该使用in运算符:

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

相关问题 更多 >