chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中有哪些常見(jiàn)的錯(cuò)誤和異常

python爬蟲(chóng)知識(shí)分享 ? 來(lái)源:python爬蟲(chóng)知識(shí)分享 ? 作者:python爬蟲(chóng)知識(shí)分享 ? 2022-03-04 16:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python常見(jiàn)異常類型

在程序運(yùn)行過(guò)程中,總會(huì)遇到各種各樣的問(wèn)題和錯(cuò)誤。

有些錯(cuò)誤是我們編寫(xiě)代碼時(shí)自己造成的,比如語(yǔ)法錯(cuò)誤、調(diào)用錯(cuò)誤,甚至邏輯錯(cuò)誤。下面這個(gè)例子,在輸入 if 后輸入回車了,沒(méi)有按照 Python 的語(yǔ)法規(guī)則來(lái),所以直接拋出了語(yǔ)法錯(cuò)誤。

>>> if
  File "", line 1
    if
     ^
SyntaxError: invalid syntax

還有一些錯(cuò)誤,則是不可預(yù)料的錯(cuò)誤,但是完全有可能發(fā)生的,比如文件不存在、磁盤空間不足、網(wǎng)絡(luò)堵塞、系統(tǒng)錯(cuò)誤等等。下面這個(gè)例子,使用 open 函數(shù)打開(kāi) demo.txt 文件,可是在當(dāng)前目錄下并沒(méi)有這個(gè)文件,所以一定會(huì)打開(kāi)失敗,拋出了IOError。

>>> fp = open('demo.txt')
Traceback (most recent call last):
  File "", line 1, in 
IOError: [Errno 2] No such file or directory: 'demo.txt'

這些導(dǎo)致程序在運(yùn)行過(guò)程中出現(xiàn)異常中斷和退出的錯(cuò)誤,我們統(tǒng)稱為異常。正常情況下,異常都不會(huì)被程序處理,而是以錯(cuò)誤信息的形式展現(xiàn)出來(lái)。

異常有很多種類型,Python內(nèi)置了幾十種常見(jiàn)的異常,就在builtins模塊內(nèi),它們無(wú)需特別導(dǎo)入,就可以直接使用。需要注意的是,所有的異常都是異常類,首字母是大寫(xiě)的!

在發(fā)生異常的時(shí)候,Python會(huì)打印出異常信息,信息的前面部分顯示了異常發(fā)生的上下文環(huán)境,并以調(diào)用棧的形式顯示具體信息。異常類型作為信息的一部分也會(huì)被打印出來(lái),例如ZeroDivisionError,TypeError。

>>> 1/0
Traceback (most recent call last):
  File "", line 1, in 
ZeroDivisionError: integer division or modulo by zero
>>>
>>>
>>> 10 + "1"
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

正常情況下,我們都不需要去記住 Python 到底內(nèi)置了哪些錯(cuò)誤和異常類型,除非你需要去捕獲它,關(guān)于捕獲的內(nèi)容,我會(huì)放在下一節(jié)。這一節(jié)先來(lái)認(rèn)識(shí)一下 Python 中有哪些常見(jiàn)的錯(cuò)誤和異常,對(duì)于新手,下面的內(nèi)容大概過(guò)一下就好,不用深究,因?yàn)檫@些在你以后的編碼中都會(huì)遇到的。

1.SyntaxError

SyntaxError,是語(yǔ)法錯(cuò)誤,可能是新手在學(xué)習(xí) Python 時(shí)最容易遇到的錯(cuò)誤

>>> while True print('Hello world')
  File "", line 1
    while True print('Hello world')
                   ^
SyntaxError: invalid syntax

解析器會(huì)輸出出現(xiàn)語(yǔ)法錯(cuò)誤的那一行,并顯示一個(gè)“箭頭”,指向這行里面檢測(cè)到的第一個(gè)錯(cuò)誤。 錯(cuò)誤是由箭頭指示的位置 上面 的 token 引起的(或者至少是在這里被檢測(cè)出的):在示例中,在 print()這個(gè)函數(shù)中檢測(cè)到了錯(cuò)誤,因?yàn)樵谒懊嫔倭藗€(gè)冒號(hào) (':') 。文件名和行號(hào)也會(huì)被輸出,以便輸入來(lái)自腳本文件時(shí)你能知道去哪檢查。

2、TypeError

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

>>> a = 10
>>> b = "1"
>>>
>>> a-b
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for -: 'int' and 'str'

3、IndexError

IndexError,是指索引出現(xiàn)了錯(cuò)誤,比如最常見(jiàn)下標(biāo)索引超出了序列邊界

>>> alist = [0,1,2]
>>> alist[5]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list index out of range

4、KeyError

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

>>> profile = {"name": "王炳明"}
>>> profile["age"]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'age'

5、ValueError

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

>>> int("1")
1
>>> int("a")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: 'a'

6、AttributeError

AttributeError是屬性錯(cuò)誤,當(dāng)用戶試圖訪問(wèn)一個(gè)對(duì)象不存在的屬性時(shí)會(huì)引發(fā)。

比如字典有g(shù)et方法,而列表卻沒(méi)有,所以對(duì)一個(gè)列表對(duì)象調(diào)用該方法就會(huì)引發(fā)該異常。

>>> alist = [0,1,2]
>>> alist.get(0)
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'list' object has no attribute 'get'

7、NameError

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

>>> name
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'name' is not defined

8、IOError

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

>>> fb = open('demo.txt')
Traceback (most recent call last):
  File "", line 1, in 
IOError: [Errno 2] No such file or directory: 'demo.txt'

9、StopIteration

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

>>> alist = range(2)
>>> agen = iter(alist)
>>> next(agen)
0
>>> next(agen)
1
>>> next(agen)
Traceback (most recent call last):
  File "", line 1, in 
StopIteration

10、AssertionError

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

>>> alist = [0,1,2]
>>> assert isinstance(alist, list)
>>> assert isinstance(alist, dict)
Traceback (most recent call last):
  File "", line 1, in 
AssertionError

11. IndentationError

Python 是一門嚴(yán)格縮進(jìn)的語(yǔ)言,如果縮進(jìn)有問(wèn)題,就會(huì)導(dǎo)致解釋器解析異常,拋出 IndentationError

>>> while True:
... print("hello")
  File "", line 2
    print("hello")
        ^
IndentationError: expected an indented block

12. ImportError

當(dāng)你在使用 import 導(dǎo)包的時(shí)候,如果因?yàn)榘e(cuò)誤或者路徑不對(duì)、包未安裝,都會(huì)拋出 ImportError

>>> import oss
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named oss

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4867

    瀏覽量

    89803
  • 異常
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    9489
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中需避免的 7 個(gè)常見(jiàn)錯(cuò)誤與局限性

    無(wú)論你是剛?cè)腴T還是已經(jīng)從事人工智能模型相關(guān)工作一段時(shí)間,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中都存在一些我們需要時(shí)刻關(guān)注并銘記的常見(jiàn)錯(cuò)誤。如果對(duì)這些錯(cuò)誤置之不理,日后可能會(huì)引發(fā)諸多麻煩!只要我們密切關(guān)注數(shù)據(jù)、模型架構(gòu)
    的頭像 發(fā)表于 01-07 15:37 ?108次閱讀
    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中需避免的 7 個(gè)<b class='flag-5'>常見(jiàn)</b><b class='flag-5'>錯(cuò)誤</b>與局限性

    檢查函數(shù)返回值的錯(cuò)誤異常處理方法

    檢查函數(shù)返回值:這是最常見(jiàn)也最基本的錯(cuò)誤處理和異常處理方法,就是在調(diào)用一個(gè)函數(shù)后,檢查其返回值是否符合預(yù)期或是否表示出錯(cuò)或失敗。如果出錯(cuò)或失敗,則根據(jù)返回值或者全局變量errno(定義在
    發(fā)表于 12-11 06:48

    API接口調(diào)用中的網(wǎng)絡(luò)異常及解決方案

    一、連接類異常:“無(wú)法建立通信鏈路” 連接類異常的核心問(wèn)題是 客戶端與API服務(wù)器之間無(wú)法成功建立TCP連接 ,導(dǎo)致調(diào)用請(qǐng)求“發(fā)不出去”,是網(wǎng)絡(luò)層最基礎(chǔ)的異常類型。 1. 常見(jiàn)場(chǎng)景與原
    的頭像 發(fā)表于 11-17 09:22 ?536次閱讀

    Cortex-M0+處理器的HardFault錯(cuò)誤介紹

    在ARM處理器中,如果一個(gè)程序產(chǎn)生了錯(cuò)誤并且被處理器檢測(cè)到,就會(huì)產(chǎn)生錯(cuò)誤異常。Cortex-M0+處理器只有一種異常用以處理錯(cuò)誤:HardF
    的頭像 發(fā)表于 10-14 10:50 ?3199次閱讀
    Cortex-M0+處理器的HardFault<b class='flag-5'>錯(cuò)誤</b>介紹

    分析負(fù)載特性時(shí),有哪些常見(jiàn)錯(cuò)誤或誤區(qū)?

    分析負(fù)載特性時(shí),很多人會(huì)因 “想當(dāng)然套用經(jīng)驗(yàn)”“忽略實(shí)際場(chǎng)景細(xì)節(jié)” 或 “混淆概念” 導(dǎo)致判斷偏差,進(jìn)而讓報(bào)警閾值調(diào)整失效(如誤報(bào)、漏報(bào))。以下是 6 個(gè)最常見(jiàn)錯(cuò)誤 / 誤區(qū),附錯(cuò)誤表現(xiàn)、危害
    的頭像 發(fā)表于 10-10 17:03 ?713次閱讀

    知曉常見(jiàn)的銅纜安裝錯(cuò)誤并避免

    銅纜(如網(wǎng)線、電話線等)是網(wǎng)絡(luò)和數(shù)據(jù)傳輸?shù)幕A(chǔ)設(shè)施,但在安裝過(guò)程中,由于操作不當(dāng)或忽視細(xì)節(jié),常出現(xiàn)各種錯(cuò)誤,導(dǎo)致網(wǎng)絡(luò)性能下降甚至故障。以下是常見(jiàn)的銅纜安裝錯(cuò)誤及預(yù)防措施,幫助您避免踩坑: 一、線纜
    的頭像 發(fā)表于 09-16 10:42 ?618次閱讀

    國(guó)巨貼片電容的電壓標(biāo)識(shí)有哪些常見(jiàn)錯(cuò)誤

    國(guó)巨貼片電容的電壓標(biāo)識(shí)在識(shí)別和使用過(guò)程中可能存在一些常見(jiàn)錯(cuò)誤,這些錯(cuò)誤可能源于標(biāo)識(shí)本身的模糊性、不同系列產(chǎn)品的差異、對(duì)標(biāo)識(shí)規(guī)則的誤解,或使用環(huán)境的影響。以下是具體分析: 一、標(biāo)識(shí)模糊或缺失導(dǎo)致的
    的頭像 發(fā)表于 08-28 16:51 ?632次閱讀

    NCS放大器DAD3350常見(jiàn)錯(cuò)誤碼及解決方案

    NCS放大器DAD3350在工業(yè)應(yīng)用中可能出現(xiàn)的錯(cuò)誤碼及解決方案如下: ? 一、常見(jiàn)錯(cuò)誤碼及原因 ? ? 過(guò)載報(bào)警(如LV低電壓報(bào)警、OVC過(guò)電流報(bào)警) ? ? 原因 ?: 電源電壓異常
    的頭像 發(fā)表于 07-12 09:41 ?787次閱讀

    電商API常見(jiàn)錯(cuò)誤排查指南:避免集成陷阱

    ? 在電商平臺(tái)開(kāi)發(fā)中,API集成是連接系統(tǒng)、實(shí)現(xiàn)數(shù)據(jù)交換的核心環(huán)節(jié)。然而,許多開(kāi)發(fā)者在集成過(guò)程中常遇到錯(cuò)誤,導(dǎo)致項(xiàng)目延遲、數(shù)據(jù)丟失或用戶體驗(yàn)下降。本文將逐步介紹常見(jiàn)錯(cuò)誤類型、排查方法以及預(yù)防策略
    的頭像 發(fā)表于 07-11 14:21 ?1933次閱讀
    電商API<b class='flag-5'>常見(jiàn)</b><b class='flag-5'>錯(cuò)誤</b>排查指南:避免集成陷阱

    PLC指示燈異常閃爍原因及維修

    異常閃爍的常見(jiàn)原因,并提供針對(duì)性的維修方案,幫助技術(shù)人員快速定位問(wèn)題,保障生產(chǎn)連續(xù)性。 一、PLC指示燈異常閃爍的典型表現(xiàn)與分類 PLC面板通常配備電源(PWR)、運(yùn)行(RUN)、錯(cuò)誤
    的頭像 發(fā)表于 06-07 16:13 ?7639次閱讀
    PLC指示燈<b class='flag-5'>異常</b>閃爍原因及維修

    原理圖和PCB設(shè)計(jì)中的常見(jiàn)錯(cuò)誤

    在電子設(shè)計(jì)領(lǐng)域,原理圖和PCB設(shè)計(jì)是產(chǎn)品開(kāi)發(fā)的基石,但設(shè)計(jì)過(guò)程中難免遇到各種問(wèn)題,若不及時(shí)排查可能影響電路板的性能及可靠性,本文將列出原理圖和PCB設(shè)計(jì)中的常見(jiàn)錯(cuò)誤,整理成一份實(shí)用的速查清單,以供參考。
    的頭像 發(fā)表于 05-15 14:34 ?1083次閱讀

    記憶示波器設(shè)置有哪些常見(jiàn)錯(cuò)誤

    記憶示波器(數(shù)字存儲(chǔ)示波器,DSO)的設(shè)置錯(cuò)誤可能導(dǎo)致波形失真、測(cè)量不準(zhǔn)確或捕獲關(guān)鍵信號(hào)失敗。以下是常見(jiàn)設(shè)置錯(cuò)誤及解決方案:一、垂直設(shè)置錯(cuò)誤 垂直檔位(Volts/div)選擇不當(dāng)
    發(fā)表于 04-14 15:29

    python入門圣經(jīng)-高清電子書(shū)(建議下載)

    和Pygal 等強(qiáng)大的Python 庫(kù)和工具介紹,以及列表、字典、if 語(yǔ)句、類、文件與異常、代碼測(cè)試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開(kāi)發(fā)三個(gè)項(xiàng)目,包括簡(jiǎn)單的Python 2D 游戲開(kāi)發(fā)如何利用數(shù)據(jù)
    發(fā)表于 04-10 16:53

    將預(yù)先訓(xùn)練的固態(tài)盤MobileNetV2模型轉(zhuǎn)換為IR,在運(yùn)行替換器“REPLACEMENT_ID”時(shí)發(fā)生異常錯(cuò)誤怎么解決?

    將預(yù)先訓(xùn)練的固態(tài)盤 MobileNetV2 模型轉(zhuǎn)換為 IR,但無(wú)法轉(zhuǎn)換經(jīng)過(guò)自定義訓(xùn)練的模型。 導(dǎo)出的凍結(jié)模型圖:python object_detection
    發(fā)表于 03-07 08:01

    使用Python3.7導(dǎo)入cv2時(shí)遇到錯(cuò)誤怎么解決?

    使用 Python* 版本 3.7。 Ran Classification Python* 演示。 在導(dǎo)入 cv2 時(shí)遇到錯(cuò)誤: ImportError: DLL load failed: The specified modu
    發(fā)表于 03-05 09:37