Python 带有if/elif语句的多个条件
我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。e、 g:Python 带有if/elif语句的多个条件,python,python-2.7,if-statement,Python,Python 2.7,If Statement,我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。e、 g: if user_input == "look": print description if user_input == "look around": print description 你如何将这些浓缩成一个陈述 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件 if user_input == "look" or "look around": pri
if user_input == "look":
print description
if user_input == "look around":
print description
你如何将这些浓缩成一个陈述
我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件
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或更低版本中不能使用):
这会使您的元素的数量增加,搜索速度会稍微快一点(尽管这只在您要检查的元素数量远远大于2的情况下才重要)
你第一次尝试总是失败的原因是。Python中的大多数内容的计算结果都是
True
(除了False
、None
或空字符串、列表、dict等)或
接受两个对象,并将它们作为布尔值进行计算。因此user\u input==“look”或“look around”
被视为(user\u input==“look”)或“look around”
;如果第一个为false,就像您编写了if“look_arou”:
,它将始终通过。如果字符串遵循
可选部分或您可以执行数组查找:
if user_input in ["look", "look around"]:
print description
布尔运算符或
仅适用于布尔值,它对表达式求值
如果其中一个表达式的计算结果为True
,则返回True
。
这与自然语言无关,谢谢道格尔!真是个愚蠢的问题@Blaine这是许多新程序员在Python中遇到的问题;它看起来像是在做你想让它做的事情,但是,好吧,它没有希望我对它为何如此运作的解释是有道理的。啊,这就解释了。一直在学习我的逻辑表,所以我明白了!:)
if user_input in ["look", "look around"]:
print description