【问题标题】:Why does this boolean expression evaluate to False? [duplicate]为什么这个布尔表达式的计算结果为 False? [复制]
【发布时间】:2019-05-16 17:30:13
【问题描述】:

有人可以向我解释为什么 Python 解释器将此表达式评估为 False 吗?

1 in [1] == True

我希望 [1] 中的 1 计算结果为 True,显然 True == True 将是 True。然而这不是发生的事情——表达式是假的。为什么会这样?

【问题讨论】:

  • 试试(1 in [1]) == True
  • (1 in [1]) == True 按预期计算为 True

标签: python


【解决方案1】:

==in 都是比较运算符。当你有多个像这样的比较运算符时,Python 认为它是一个链式比较。例如,1 < x < 10 等价于 1 < x and x < 10

在您的情况下,1 in [1] == True 等效于 (1 in [1]) and ([1] == True),其计算结果为 False

【讨论】:

  • 哦,现在说得通了。谢谢!
【解决方案2】:

如果你有这样的表达式,python 将其拆分为更多语句。事实上:

1 in [1] == True equals to: (1 in [1]) and ([1] == True)

右边是假的,因为[1] != True和整个句子都是假的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2018-03-08
    • 2022-11-30
    • 2021-12-28
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多