溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python有哪些內(nèi)置異常

發(fā)布時(shí)間:2021-10-29 14:36:46 來(lái)源:億速云 閱讀:150 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“Python有哪些內(nèi)置異?!?,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python有哪些內(nèi)置異?!卑桑?/p>

1. SyntaxError

SyntaxError主要是Python語(yǔ)法發(fā)生了錯(cuò)誤,比如少個(gè)冒號(hào)、多個(gè)引號(hào)之類的,編程時(shí)稍微疏忽大意一下就會(huì)出錯(cuò),應(yīng)該是最常見(jiàn)的一種異常錯(cuò)誤了。

In [1]: While True print('1')   File "<ipython-input-1-8ebf67bb4c2b>", line 1     While True print('1')           ^ SyntaxError: invalid syntax

2. TypeError

TypeError是類型錯(cuò)誤,也就是說(shuō)將某個(gè)操作或功能應(yīng)用于不合適類型的對(duì)象時(shí)引發(fā),比如整型與字符型進(jìn)行加減法、在兩個(gè)列表之間進(jìn)行相減操作等等。

In [8]: a = [1,2];b = [2,3] In [9]: a-b --------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last) <ipython-input-9-5ae0619f8fe1> in <module> ----> 1 a-b  TypeError: unsupported operand type(s) for -: 'list' and 'list'

3. IndexError

IndexError是指索引出現(xiàn)了錯(cuò)誤,比如最常見(jiàn)下標(biāo)索引超出了序列邊界,比如當(dāng)某個(gè)序列m只有三個(gè)元素,卻試圖訪問(wèn)m[4]。

In [16]: m = [1,2,3] In [17]: m[4] --------------------------------------------------------------------------- IndexError                                Traceback (most recent call last) <ipython-input-17-94e0dfab3ff6> in <module> ----> 1 m[4]  IndexError: list index out of range

4. KeyError

KeyError是關(guān)鍵字錯(cuò)誤,這個(gè)異常主要發(fā)生在字典中,比如當(dāng)用戶試圖訪問(wèn)一個(gè)字典中不存在的鍵時(shí)會(huì)被引發(fā)。

In [18]: dict_ = {'1':'yi','2':'er'} In [19]: dict_['3'] --------------------------------------------------------------------------- KeyError                                  Traceback (most recent call last) <ipython-input-19-c2e43847635f> in <module> ----> 1 dict_['3']  KeyError: '3'

5. ValueError

ValueError為值錯(cuò)誤,當(dāng)用戶傳入一個(gè)調(diào)用者不期望的值時(shí)會(huì)引發(fā),即使這個(gè)值的類型是正確的,比如想獲取一個(gè)列表中某個(gè)不存在值的索引。

In [22]: n = [1,2,3] In [23]: n.index(4) --------------------------------------------------------------------------- ValueError                                Traceback (most recent call last) <ipython-input-23-9a1887cf29d7> in <module> ----> 1 n.index(4)  ValueError: 4 is not in list

6. AttributeError

AttributeError是屬性錯(cuò)誤,當(dāng)用戶試圖訪問(wèn)一個(gè)對(duì)象不存在的屬性時(shí)會(huì)引發(fā),比如列表有index方法,而字典卻沒(méi)有,所以對(duì)一個(gè)字典對(duì)象調(diào)用該方法就會(huì)引發(fā)該異常。

In [25]: dict_ = {'1':'yi','2':'er'} In [26]: dict_.index('1') --------------------------------------------------------------------------- AttributeError                            Traceback (most recent call last) <ipython-input-26-516844ad2563> in <module> ----> 1 dict_.index('1')  AttributeError: 'dict' object has no attribute 'index'

7. NameError

NameError是指變量名稱發(fā)生錯(cuò)誤,比如用戶試圖調(diào)用一個(gè)還未被賦值或初始化的變量時(shí)會(huì)被觸發(fā)。

In [27]: print(list_) --------------------------------------------------------------------------- NameError                                 Traceback (most recent call last) <ipython-input-27-87ebf02ffcab> in <module> ----> 1 print(list_)  NameError: name 'list_' is not defined

8. FileNotFoundError

FileNotFoundError為打開(kāi)文件錯(cuò)誤,當(dāng)用戶試圖以讀取方式打開(kāi)一個(gè)不存在的文件時(shí)引發(fā)。

In [29]: fb = open('./list','r') --------------------------------------------------------------------------- FileNotFoundError                         Traceback (most recent call last) <ipython-input-29-1b65fe5400ea> in <module> ----> 1 fb = open('./list','r')  FileNotFoundError: [Errno 2] No such file or directory: './list'

9. StopIteration

StopIteration為迭代器錯(cuò)誤,當(dāng)訪問(wèn)至迭代器最后一個(gè)值時(shí)仍然繼續(xù)訪問(wèn),就會(huì)引發(fā)這種異常,提醒用戶迭代器中已經(jīng)沒(méi)有值可供訪問(wèn)了。

In [30]: list1 = [1,2] In [31]: list2 = iter(list1) In [33]: next(list2) Out[33]: 1  In [34]: next(list2) Out[34]: 2  In [35]: next(list2) --------------------------------------------------------------------------- StopIteration                             Traceback (most recent call last) <ipython-input-35-5a5a8526e73b> in <module> ----> 1 next(list2)

10. AssertionError

AssertionError為斷言錯(cuò)誤,當(dāng)用戶利用斷言語(yǔ)句檢測(cè)異常時(shí),如果斷言語(yǔ)句檢測(cè)的表達(dá)式為假,則會(huì)引發(fā)這種異常。

In [45]: list3 = [1,2]  In [46]: assert len(list3)>2 --------------------------------------------------------------------------- AssertionError                            Traceback (most recent call last) <ipython-input-46-ffd051e2ba94> in <module> ----> 1 assert len(list3)>2  AssertionError:

感謝各位的閱讀,以上就是“Python有哪些內(nèi)置異?!钡膬?nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python有哪些內(nèi)置異常這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI