首頁(yè)技術(shù)文章正文

Python常見(jiàn)語(yǔ)法問(wèn)題和異常概述

更新時(shí)間:2021-01-18 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

Python程序中最常見(jiàn)的錯(cuò)誤為語(yǔ)法錯(cuò)誤。語(yǔ)法錯(cuò)誤又稱為解析錯(cuò)誤,它是指開發(fā)人員編寫了不符合Python語(yǔ)法格式的代碼所引起的錯(cuò)誤。含有語(yǔ)法錯(cuò)誤的程序會(huì)拋出異常,無(wú)法運(yùn)行。如下所示為一段包含語(yǔ)法問(wèn)題的代碼:

while True
print("語(yǔ)法格式錯(cuò)誤")

上述示例代碼中的循環(huán)語(yǔ)句后少了冒號(hào)(:),不符合Python的語(yǔ)法格式。因此語(yǔ)法分析器會(huì)檢測(cè)到錯(cuò)誤。

在PyCharm中運(yùn)行上述代碼后,錯(cuò)誤信息會(huì)在結(jié)果輸出區(qū)進(jìn)行顯示,具體如下:

File " D:/Python項(xiàng)目/異常.py ", line 1
while True
       ^
SyntaxError: invalid syntax

以上錯(cuò)誤信息中包含了錯(cuò)誤所在的行號(hào)、錯(cuò)誤類型和具體信息,錯(cuò)誤信息中使用小箭頭(^)指出語(yǔ)法錯(cuò)誤的具體位置,方便開發(fā)人員快速地定位并修正。產(chǎn)生語(yǔ)法錯(cuò)誤時(shí)引發(fā)的異常類型為SyntaxError。

一段語(yǔ)法格式正確的Python代碼在運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤稱為異常。如果這些異常不被處理,程序默認(rèn)的處理方式是直接崩潰。

程序運(yùn)行時(shí)產(chǎn)生異常,示例如下:

for i in 3:
    print(i)

運(yùn)行代碼,結(jié)果如下所示:

Traceback (most recent call last):
 File "D:/Python項(xiàng)目/異常.py", line 7, in <module>
  for i in 3:
TypeError: 'int' object is not iterable

上述語(yǔ)句沒(méi)有任何語(yǔ)法格式錯(cuò)誤,但代碼執(zhí)行后出現(xiàn)TypeError異常,這是因?yàn)槭褂胒or循環(huán)對(duì)一個(gè)整數(shù)進(jìn)行遍歷,而for循環(huán)不支持對(duì)整數(shù)類型的遍歷。

在Python中所有的異常均由類實(shí)現(xiàn),所有的異常類又繼承自BaseException類,程序運(yùn)行時(shí)出現(xiàn)的異常大多繼承自Exception類。如圖1所示為Python中異常類的繼承關(guān)系。

1610941305944_1.png

圖1 Python中異常類的繼承關(guān)系

因?yàn)镾yntaxError、FileNotFoundError、NameError等常見(jiàn)異常均繼承自Exception類,所以本章主要對(duì)Exception類及其子類進(jìn)行介紹,Exception中常見(jiàn)的子類及其描述如表1所示。

表1 Exception中常見(jiàn)的子類

1610941252119_2.png



猜你喜歡:

Python基本語(yǔ)法:如何換行

人工智能+Python:十大Markdown語(yǔ)法簡(jiǎn)明教程

Python語(yǔ)法之生成器

黑馬Python培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!