在python中,'foo ==(8或9)'或'foo == 8或foo == 9'更正确吗?

时间:2014-09-03 02:05:10

标签: python python-2.7 if-statement boolean

在python中编程时,当您检查语句是否为真时,使用foo == (8 or 9)foo == 8 or foo == 9会更正确吗?这只是程序员选择做的事情吗?我想知道python 2.7,以防它在python 3中有所不同。

2 个答案:

答案 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