【问题标题】:python (boolean type) and (integer) will become a integer type [duplicate]python(布尔类型)和(整数)将成为整数类型[重复]
【发布时间】:2018-07-06 17:06:21
【问题描述】:

我发现 (boolean type) 和 (integer) 在 Python3 中会变成整数。这行代码发生了什么转换?

flag=True
print(flag and 2)

输出:2

【问题讨论】:

  • 也许你会发现这很有用。 stackoverflow.com/questions/37888620/…
  • 如果“flag”为假,则输出为假...这是因为“and”表达式的右侧部分仅在左侧为真时才被评估...试试这个: flag=True print(2 and flag) output: true 换句话说,and 运算符返回它所操作的两个值之一。如果左侧是假的,则评估右侧部分没有意义,因此返回左侧部分。如果左边部分为真,则返回右边部分,因为表达式仍有可能为真
  • bool 早在 Python 3 发布之前就已经是 int 的子类了(它本身发生在将近 10 年前)。

标签: python


【解决方案1】:

and 运算符(以及所有其他布尔运算符)的值将始终是最后评估的值。运算符and 在计算为False 时停止计算,因此计算为False 的操作数将成为计算的值。相反,如果计算结果为True,则计算结果为True 的操作数将成为计算值。

>>> False and 2
False
>>> True and 3
3
>>> 1 and False and 3
False
>>> 1 and 0 and 3
0

【讨论】:

    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多