Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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条件_Python_If Statement - Fatal编程技术网

具有多个变量的Python IF条件

具有多个变量的Python IF条件,python,if-statement,Python,If Statement,有人能澄清一下吗。如果我尝试编写以下代码,会发生什么情况: if tomato = 1 or tomato = 2 or tomato = 3 。。。像这样: if tomato = 1 or 2 or 3 我知道Python不认为它是一样的,但是它认为我在做什么? 最重要的是,如果我对西红柿有很多条件,那么最好的方法是什么。每次写“tomato=”似乎都不太整洁。Python什么都不想。它识别出语法有问题,并抛出一个SyntaxError 要一次检查多个值,您可以使用中的操作符: if

有人能澄清一下吗。如果我尝试编写以下代码,会发生什么情况:

if tomato = 1 or tomato = 2 or tomato = 3
。。。像这样:

if tomato = 1 or 2 or 3 
我知道Python不认为它是一样的,但是它认为我在做什么?
最重要的是,如果我对西红柿有很多条件,那么最好的方法是什么。每次写“tomato=”似乎都不太整洁。

Python什么都不想。它识别出语法有问题,并抛出一个
SyntaxError

要一次检查多个值,您可以使用中的
操作符:

if tomato in (1, 12, 25, 76, 84):
    pass

还要注意,必须使用两个等号(
==
)来检查是否相等。

如果使用了双等号,执行过程如下:Python从左到右开始计算
If
语句的谓词。如果
If
的值为1,则第一部分的计算结果为
True
,Python解释器继续计算
If
块内的连续行(称为)

但是,如果
tomato
的值不是1,解释器将继续计算谓词中的下一部分,该部分是值2的整数。除零外,所有整数值的计算结果均为
True
。这导致谓词的下一部分计算为
True
,解释器继续执行
if
块的内容。因此,您的谓词是a,无论
tomato
有什么值,它的计算结果总是
True

正如pp_389;指出的,应该使用双等号进行相等比较-否则该语句被视为赋值,在Python中,赋值语句没有真值,因此解释器会向您抛出一个
SyntaxError