【发布时间】:2018-10-02 20:21:26
【问题描述】:
在 Python 中,任何非零值都被评估为 True。因此,例如,下面的代码打印Yes。
if 2 or 3:
print('Yes')
但是,如果我在 Python 控制台输入 2 or 3,我会得到 2 而不是 True。为什么会有不同的行为?
【问题讨论】:
-
或返回它遇到的第一个真值。特别是,它不会将其隐式转换为布尔值
-
if 2: print('Yes')也会打印“Yes”,但您不会期望print(2)打印“True”吧? -
基于以上两个 cmets- 我是否应该推断以下内容:(a) 在控制台输入内容相当于发出打印,并且 (b) Python 将真值解释为 True仅在 if 语句的上下文中。或者,我错过了一些非常基本的东西。
-
(a)和(b)都错了。
-
在所有情况下,
2 or 3表达式都会生成2。然后由控制台直接显示,传递给print函数,或者传递给if语句。if进行自己的真实性测试。
标签: python