参见英文答案 > How to test multiple variables against a value?21个
我试图从多个条件触发if语句,而不用不同的触发器多次重写语句.例如.:
if user_input == "look":
print description
if user_input == "look around":
print description
你会如何将它们浓缩成一个陈述?
我尝试使用’或’,它会导致任何raw_input触发语句,无论输入是否匹配任何条件.
if user_input == "look" or "look around":
print description
解决方法:
你要做的是
if user_input == "look" or user_input == "look around":
print description
如果你有很多可能性,另一种选择:
if user_input in ("look", "look around"):
print description
由于你使用的是2.7,你也可以这样写(它在2.7或3中工作,但不在2.6或以下):
if user_input in {"look", "look around"}:
print description
这会产生set个元素,搜索速度会稍微快一些(尽管只有在你检查的元素数量远大于2时才有意义).
你第一次尝试的原因是这个. Python中的大多数内容都评估为True(除了False,None或空字符串,列表,dicts,…).或者采取两件事并将其评估为布尔值.所以user_input ==“look”或“环顾四周”被视为(user_input ==“look”)或“look_around”;如果第一个是假的,那就像你写的“look_around”:,它将永远经历.
标签:python,python-2-7,if-statement
来源: https://codeday.me/bug/0923/1813801.html