【问题标题】:Please Explain me print(True>False) and print(False>True) [duplicate]请解释一下 print(True>False) 和 print(False>True) [重复]
【发布时间】:2021-04-17 18:05:52
【问题描述】:

我写了一个代码

print(False>True)
print(True>False)

结果是

False
True

谁能解释一下这是怎么回事

【问题讨论】:

  • print(int(True)) - print(int(False))

标签: python boolean boolean-logic boolean-operations


【解决方案1】:

在 Python 中,当您在大于/小于比较中使用布尔值时,它们会自动被视为数字,因此 True 变为 1 并且 False 变为 0。替换它们,答案就很明显了:

print(0 > 1)
print(1 > 0)

第一次检查是False,第二次检查是True

【讨论】:

    【解决方案2】:

    布尔值也是整数并且具有整数值:

    >>> type(False)
    <class 'bool'>
    >>> bool.mro()  # base classes include integer
    [<class 'bool'>, <class 'int'>, <class 'object'>]
    >>> int(False)
    0
    >>> int(True)
    1
    

    所以 False(0) 大于 True(1),而 True(1) is 大于 False(0)。

    【讨论】:

      【解决方案3】:

      您基本上是在打印 0 (False) 是否大于 1 (True),即 False,然后对于第二个语句反之亦然

      【讨论】:

        【解决方案4】:

        布尔结果总是返回 0 或 False 表示 false,1 或 True 表示 true

        发件人:Py Doc

        为了更清楚:

        >>> False
        False
        >>> False>True
        False
        >>> 0>1
        False
        >>> True>False
        True
        >>> 1>0
        True
        

        【讨论】:

          猜你喜欢
          • 2018-04-02
          • 2021-10-19
          • 1970-01-01
          • 2016-03-27
          • 1970-01-01
          • 1970-01-01
          • 2020-12-10
          • 1970-01-01
          • 2019-04-16
          相关资源
          最近更新 更多