为什么下面的python3“if”可以工作?

2024-09-22 20:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我对“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 condition is confirated”(如果这是描述情况的适当方式)和print()?你知道吗

我原以为正确的操作应该是

if <expression>:
    <do this>

其中,“表达式”的计算结果为布尔值True时,仅执行“do this”。当“expression”是字符串时,为什么要执行“do this”?你知道吗


Tags: gttrueiftype情况redthisdo