Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有if/elif语句的多个条件_Python_Python 2.7_If Statement - Fatal编程技术网

Python 带有if/elif语句的多个条件

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语句从多个条件触发,而不使用不同的触发器多次重写该语句。e、 g:

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