为什么以下Python 3“if”有效?

时间:2017-07-11 19:14:14

标签: python python-3.x

我正在对“if”语句进行快速测试,下面的代码片段会按预期生成打印输出。

案例1

x = True
if x:
    print("Roses are red")

>>>中的结果玫瑰是红色的,在翻译中

另外:

type(x)
>>> <class 'bool'>

正如所料。

然后我尝试了:

案例2

x = "True"
if x:
    print("Roses are red")

我再次得到了结果:玫瑰红了

和:

>>> type(x)
<class 'str'>

有人可以在第二种情况下解释“if条件是否满足”(如果这是描述情况的适当方式)并执行print()?

我原以为正确的操作就像是

if <expression>:
    <do this>

当“表达式”评估为布尔值值为True时,“执行此操作”仅执行 。当“表达式”是字符串时,为什么要“执行此操作”?

1 个答案:

答案 0 :(得分:2)

字符串“True”是truthy,意味着它在if条件下的计算结果为true。