【发布时间】:2015-08-04 10:41:20
【问题描述】:
In [1]: a=5
In [2]: print(["is odd", "is even"][a % 2 == 0])
is odd
In [3]: [a%2 == 0]
Out[3]: [False]
我的理解是 a % 2 == 0 的计算结果为 True 或 False。
因此,如果它为 True,则等于 1,并且使用列表索引将打印 'is even'。
我读过this 并知道bool 是int 的一个实例。
因此,当在索引中使用时,bool 会评估为它的等效数字,即 0 或 1。
我的问题
根据直觉,我们可以知道它是int 还是bool
但是 Python 是怎么知道的呢?何时用作bool 以及何时用作int 是否有任何标准?任何来自 Python3 文档的内容都会被欣赏。
【问题讨论】:
-
你不是在这里评估一个 int 而是一个条件表达式,因此你当然会收到一个 bool
-
继续运行
False.real和True.real看看会发生什么 -
@IanAuld False.real=0,True.real=1
标签: python