在python中编程时,当您检查语句是否为真时,使用foo == (8 or 9)
或foo == 8 or foo == 9
会更正确吗?这只是程序员选择做的事情吗?我想知道python 2.7,以防它在python 3中有所不同。
答案 0 :(得分:13)
您可能需要foo == 8 or foo == 9
,因为:
In [411]: foo = 9
In [412]: foo == (8 or 9)
Out[412]: False
In [413]: foo == 8 or foo == 9
Out[413]: True
毕竟,(8 or 9)
等于8
:
In [414]: (8 or 9)
Out[414]: 8
或者,你也可以写
foo in (8, 9)
这适用于Python3和Python2。
答案 1 :(得分:2)
foo == (8 or 9)
与foo == 8 or foo == 9
不同,后者是正确的形式。
(8 or 9)
评估为8
,因为在Python or
中评估的是第一个操作数(从左到右),即“真实”或“{1}}如果两者都没有,那么支票就变成普通的False
。