>> if for i in range(3)File " ", line 1if for i in range(3) ^SyntaxError: invalid syn ">
IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
1、錯(cuò)誤
錯(cuò)誤一般是指語(yǔ)法錯(cuò)誤(SyntaxError)。當(dāng)Python解釋器檢測(cè)到不正確的語(yǔ)句時(shí),就會(huì)發(fā)生語(yǔ)法錯(cuò)誤:
>>> if for i in range(3)
File "
if for i in range(3)
^
SyntaxError: invalid syntax
if關(guān)鍵字和for關(guān)鍵字連在一起,是一定會(huì)有語(yǔ)法錯(cuò)誤的。當(dāng)發(fā)生錯(cuò)誤(或異常)時(shí),Python解釋器會(huì)給出一些提醒,以便開發(fā)者發(fā)現(xiàn)錯(cuò)誤的位置及錯(cuò)誤類型。對(duì)于上例,分析如下:
①語(yǔ)法分析器會(huì)指出是哪個(gè)文件出了錯(cuò)誤,這個(gè)示例中是"
②隨后指出錯(cuò)誤發(fā)生在第幾行,這個(gè)示例中是line1,代表第一行。
③用“^”指出發(fā)生錯(cuò)誤的具體位置,這個(gè)示例是由于if和for挨在一起。
④最后一行指出錯(cuò)誤類型,這個(gè)示例中是SyntaxError,代表語(yǔ)法錯(cuò)誤。
⑤最后指出錯(cuò)誤的詳細(xì)說(shuō)明,這個(gè)示例中是invalid syntax。
語(yǔ)法錯(cuò)誤是初學(xué)者比較容易犯的錯(cuò)誤,常見的語(yǔ)法錯(cuò)誤如下:
①在非字符串字面量中使用中文字符(全角字符)。Python語(yǔ)法的構(gòu)成元素全部是英文字符(半角字符)。
②縮進(jìn)錯(cuò)誤,詳見第三章。
③缺少必要的冒號(hào)。
④括號(hào)未配對(duì),一般表現(xiàn)為只有左括號(hào)而缺少右括號(hào)。
⑤缺少必要的空格,漢字是一個(gè)挨著一個(gè)輸入的,但是英文單詞不可以,單詞之間需要使用空格。
2、異常
即使代碼在語(yǔ)法上是完全正確的,但是在執(zhí)行時(shí)也可能會(huì)引發(fā)錯(cuò)誤,書中出現(xiàn)的絕大部分代碼演示中的錯(cuò)誤均是如此:
>>> 3 / 0 # 除以零異常
Traceback (most recent call last):
File "
ZeroDivisionError: division by zero
>>> numbers = [1, 2, 3]
>>> numbers[3] # 列表索引異常
Traceback (most recent call last):
File "
IndexError: list index out of range
>>> fruits = ('apple', 'banana')
>>> fruits[2] # 元組索引異常
Traceback (most recent call last):
File "
IndexError: tuple index out of range
這種能通過(guò)語(yǔ)法檢查,但在運(yùn)行時(shí)檢測(cè)到的錯(cuò)誤稱為異常(Exceptions)。當(dāng)Python程序引發(fā)異常時(shí),必須立即處理該異常,否則程序?qū)⒔K止并退出。異常消息的最后一行指出了異常類型和異常的詳細(xì)說(shuō)明。異常有不同的類型,并且該類型作為消息的一部分進(jìn)行打印。上述示例中的異常類型分別為ZeroDivisionError、IndexError和IndexError。這兩種異常都是Python中內(nèi)建的,稱為內(nèi)建異常。
內(nèi)建的異常有很多種類型,分別對(duì)應(yīng)不同的異常情況。Python中常見的異常類型如表所示。
更多內(nèi)容
>>本文地址:http://uj2y2uok.com/zhuanye/2021/69431.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?