在Python编程中,当您检查语句是否为真时,使用
foo == (8 or 9)
还是foo == 8 or foo == 9
更正确?这只是程序员选择的问题吗?我想知道Python 2.7是否与Python 3不同。foo == (8 or 9)
还是foo == 8 or foo == 9
更正确?这只是程序员选择的问题吗?我想知道Python 2.7是否与Python 3不同。你可能想要 foo == 8 或者 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或9)
等于8
:
In [414]: (8 or 9)
Out[414]: 8
或者,您也可以编写
foo in (8, 9)
这同样适用于Python3和Python2。
foo == (8 or 9)
不等同于 foo == 8 or foo == 9
,后者是正确的形式。
在Python中,(8 or 9)
的值为8
,因为or
操作符会从左至右依次计算每个操作数,返回第一个“真值”,如果没有真值,则返回False
。所以这个检查就变成了普通的 foo == 8
。
foo == (8 or 9)
不是你想象中的样子。 - Jeff Mercado