![Python程序设计:人工智能案例实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/423/39980423/b_39980423.jpg)
上QQ阅读APP看书,第一时间看更新
3.3 if
语句
下面的代码段执行了一次if
语句:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/067-1.jpg?sign=1739282916-Ab3i6Xr0F9X8A9wIzu1dI5XIVeQII6zI-0-78681a70fd31e4759b32d11ca50bf7e7)
其中,条件grade> = 60
为True
,因此if
套件中被缩进的print
语句显示'passed'
。
套件缩进
套件需要有相应的缩进,否则,会引发IndentationError
,如下:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/068-1.jpg?sign=1739282916-TbREjta41fquNsYpXX680Invr9ZVpo9B-0-bc9f51b907eed7ef10929aa926db9fe7)
如果套件中包含多条语句,但这些语句没有相同的缩进,也会引发IndentationError
,例如:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/068-2.jpg?sign=1739282916-TjC1vbGEJWWgZZXJkbKLe9ZBSZUIo0BB-0-c49816fedede9bbf77ab67e41846892e)
有些时候,Python给出的错误信息可能不够准确,但它提示需要注意的那一行通常可以让我们弄清楚代码发出了什么错误。不均匀的缩进会降低程序的可读性,因此,在整个代码中应该使用统一的缩进规则。
每个表达式都可以被解释为True
或False
任何表达式的值都可作为决策依据,非零值为True
,零为False
,如下所示:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/068-3.jpg?sign=1739282916-CrrJzPcVFWPnZHxSmNrcKu22NqxGI0jF-0-4d91e44dc5963d366ca08bc37e6533c0)
非空的字符串为True
,空字符串(' '
、" "
或"
" " " "
)为False
。
容易混淆的==
和=
在赋值语句中使用等于运算符“==
”而不是“=
”可能会导致不易发现的问题。例如,在下面的代码段中,代码段[1]
使用赋值定义了变量grade
:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/068-4.jpg?sign=1739282916-5y3HwZR3CQMkctAfk5hS1ltCu0lWRGzu-0-ca0c0207d85fc99af48115c433ca87be)
如果将其写成下面这样:
![](https://epubservercos.yuewen.com/9955D6/20818201008362506/epubprivate/OEBPS/Images/068-5.jpg?sign=1739282916-DCqRf3hQbjXwOXTC1yIL04Q3VvxhMRwh-0-4d96f5df29d836f228ba867d3541b080)
那么grade
是未定义的,会显示一个NameError
。如果在上面的语句之前定义了grade
,则grade==85
就是一个逻辑错误,这是一个取值为True
或False
的关系表达式,而不是赋值语句,不会将85
赋值给grade
。