zoukankan      html  css  js  c++  java
  • 为什么Python中“2==2>1”结果为True

    在Python中,你可能会发现这样一个奇怪的现象:

    >>> 2 == 2 > 1
    True
    >>> (2 == 2) > 1
    False
    >>> 2 == (2 > 1)
    False

    为什么会出现 2==2>1的结果为True?如果说这是运算符的优先级问题,那么后两个式子为什么又都是False?

    实际上这涉及到了Python的 链式对比(ChainedComparisons)。在其他语言中,有一个变量 x,如果要判断x是否大于1,小于5,可能需要这样写代码:

    if (x > 1 and x < 5)

    但是在Python中,可以这样写代码:

    if 1 < x < 5

    Python能够正确处理这个链式对比的逻辑。回到最开始的问题上, ==等于符号和 <小于符号,本质没有什么区别。所以实际上 2==2>1也是一个链式对比的式子,它相当于 2==2and2>1。此时,这个式子就等价于 TrueandTrue。所以返回的结果为True。

    注:True相当于1,False相当于0

    原文来自:https://cloud.tencent.com/developer/article/1386941

  • 相关阅读:
    dfs-入门模板
    dp-状压dp
    c++ sizeof详解
    各种排序算法
    简介
    第178场周赛总结
    单调队列
    2019.10.24刷题统计
    2019.10.23刷题统计
    2019.10.22刷题统计
  • 原文地址:https://www.cnblogs.com/shanghongyun/p/10519579.html
Copyright © 2011-2022 走看看