我对python中的比较运算符有疑问.我想知道这是对还是错.
我有一些分配给变量的输出.所以我们说:
result1, result2, result3
Run Code Online (Sandbox Code Playgroud)
现在我做一个比较
if result1 == 0 and result2 == 0 and result3 == 0:
print "Success "
else:
print "failure"
Run Code Online (Sandbox Code Playgroud)
我怀疑这种比较可以用这种格式进行
if 0 in (result1 , result2 ,result3):
print "Success"
else :
print "failure"
Run Code Online (Sandbox Code Playgroud)
这是正确使用Python吗?如果没有,那是什么原因?
您可以进行比较,但您的第二次比较与第一次比较不同.
此比较仅True在每个变量为0时进行:
if result1 == 0 and result2 == 0 and result3 == 0:
Run Code Online (Sandbox Code Playgroud)
True当至少有一个变量为0时,这种比较是:
if 0 in (result1, result2, result3):
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,那不是完全相同的比较.要执行相同的比较,您可以:
if (0, 0, 0) == (result1, result2, result3):
Run Code Online (Sandbox Code Playgroud)
if 0 in (result1, result2, result3):
Run Code Online (Sandbox Code Playgroud)
相当于:
if result1==0 or result2==0 or result3==0:
Run Code Online (Sandbox Code Playgroud)
你想要的是这个:
if (0,0,0) == (result1, result2, result3):
Run Code Online (Sandbox Code Playgroud)
这相当于:
if result1==0 and result2==0 and result3==0:
Run Code Online (Sandbox Code Playgroud)
你甚至可以这样做:
if result1==result2==result3==0:
Run Code Online (Sandbox Code Playgroud)
因为你正在检查所有3个变量是否相同.