【问题标题】:Why this statement is evaluated to False even it is true? [duplicate]为什么即使它是真的,这个陈述也会被评估为假? [复制]
【发布时间】:2019-05-09 18:42:38
【问题描述】:

我开始学习python,但是我注意到一些不寻常的东西,我不明白的东西,为什么下面提供的表达式即使是真的也会被评估为假??

l = [1,2,3,4,5,"Hi"]
"Hi" in l  # returns True
"Hi" in l == True # returns False

【问题讨论】:

    标签: python


    【解决方案1】:

    "Hi" in l == True 被评估为("Hi" in l) and (l == True),即False

    来自documentation的解释:

    比较可以任意链接,例如,x

    【讨论】:

    • 其实评估为'Hi' in (l == True)'Hi' in False
    • @sepp2k 我错了。
    • in 被认为与<== 是同一种比较运算符,这很奇怪。是否有任何合理的情况您希望将其包含在这样的链中?
    • @Barmar 恕我直言,没有这种情况我会在链中使用in 比较。只有像0 < x < 1 这样简单明了的链是常用的。 in 在链中会产生过多的胡须和混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多