【问题标题】:In python, is 'foo == (8 or 9)' or 'foo == 8 or foo == 9' more correct?在 python 中,'foo == (8 or 9)' 或 'foo == 8 or foo == 9' 更正确吗?
【发布时间】:2014-09-03 02:05:09
【问题描述】:

在python中编程时,当你检查一个语句是否为真时,使用foo == (8 or 9)foo == 8 or foo == 9会更正确吗?仅仅是程序员选择做什么的问题吗?我想知道 python 2.7,以防它在 python 3 中有所不同。

【问题讨论】:

  • 两者不等价...foo == (8 or 9) 可能不是你想的那样。
  • 显然,您不了解“或”运算符的工作原理。任何非零整数在逻辑上都是 TRUE。那么……

标签: python python-2.7 if-statement boolean


【解决方案1】:

你可能想要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。

【讨论】:

  • 有趣,我不知道。谢谢!
【解决方案2】:

foo == (8 or 9)foo == 8 or foo == 9不一样,后者是正确的形式。

(8 or 9) 计算结果为 8,因为在 Python 中 or 计算结果为第一个操作数(从左到右),即“真实”,或者 False 如果两者都不是,则检查变为普通的 foo == 8 .

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2023-03-17
    • 2022-11-04
    • 2010-12-12
    • 2011-03-22
    • 2010-09-08
    相关资源
    最近更新 更多