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

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

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

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

Python中有哪些常見的錯誤和異常

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-04 16:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python常見異常類型

在程序運行過程中,總會遇到各種各樣的問題和錯誤。

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

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

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

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

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

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

在發(fā)生異常的時候,Python會打印出異常信息,信息的前面部分顯示了異常發(fā)生的上下文環(huán)境,并以調(diào)用棧的形式顯示具體信息。異常類型作為信息的一部分也會被打印出來,例如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)置了哪些錯誤和異常類型,除非你需要去捕獲它,關(guān)于捕獲的內(nèi)容,我會放在下一節(jié)。這一節(jié)先來認識一下 Python 中有哪些常見的錯誤和異常,對于新手,下面的內(nèi)容大概過一下就好,不用深究,因為這些在你以后的編碼中都會遇到的。

1.SyntaxError

SyntaxError,是語法錯誤,可能是新手在學習 Python 時最容易遇到的錯誤

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

解析器會輸出出現(xiàn)語法錯誤的那一行,并顯示一個“箭頭”,指向這行里面檢測到的第一個錯誤。 錯誤是由箭頭指示的位置 上面 的 token 引起的(或者至少是在這里被檢測出的):在示例中,在 print()這個函數(shù)中檢測到了錯誤,因為在它前面少了個冒號 (':') 。文件名和行號也會被輸出,以便輸入來自腳本文件時你能知道去哪檢查。

2、TypeError

TypeError,是類型錯誤,也就是說將某個操作或功能應用于不合適類型的對象時引發(fā),比如整型與字符型進行加減法

>>> 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)了錯誤,比如最常見下標索引超出了序列邊界

>>> 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)鍵字錯誤,這個異常主要發(fā)生在字典中,比如當用戶試圖訪問一個字典中不存在的鍵時會被引發(fā)。

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

5、ValueError

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

>>> 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是屬性錯誤,當用戶試圖訪問一個對象不存在的屬性時會引發(fā)。

比如字典有g(shù)et方法,而列表卻沒有,所以對一個列表對象調(diào)用該方法就會引發(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ā)生錯誤,比如用戶試圖調(diào)用一個還未被賦值或初始化的變量時會被觸發(fā)。

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

8、IOError

IOError 為打開文件錯誤,當用戶試圖以讀取方式打開一個不存在的文件時引發(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為迭代器錯誤,當訪問至迭代器最后一個值時仍然繼續(xù)訪問,就會引發(fā)這種異常,提醒用戶迭代器中已經(jīng)沒有值可供訪問了。

>>> 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 為斷言錯誤,當用戶利用斷言語句檢測異常時,如果斷言語句檢測的表達式為假,則會引發(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 是一門嚴格縮進的語言,如果縮進有問題,就會導致解釋器解析異常,拋出 IndentationError

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

12. ImportError

當你在使用 import 導包的時候,如果因為包名錯誤或者路徑不對、包未安裝,都會拋出 ImportError

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

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

    關(guān)注

    57

    文章

    4876

    瀏覽量

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

    關(guān)注

    0

    文章

    23

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    燒錄芯片總失???五大常見錯誤與解決方法

    產(chǎn)線常見 Verify Error 校驗錯誤,多非芯片本身問題,而是五大典型因素導致:燒錄座接觸不良、電源供電不穩(wěn)、信號與時序異常、加密保護誤觸、靜電與溫度影響。按物理連接、電氣環(huán)境、軟件配置逐級排查,規(guī)范耗材更換與產(chǎn)線防護,可
    的頭像 發(fā)表于 02-24 15:37 ?839次閱讀

    機器學習和深度學習中需避免的 7 個常見錯誤與局限性

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

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

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

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

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

    電能質(zhì)量在線監(jiān)測裝置時鐘模塊自動同步異常常見類型有哪些?

    : 一、PTP 同步(IEEE 1588)常見異常類型(適配 A 級裝置) PTP 同步依賴高精度鏈路與主從時鐘協(xié)同,異常多源于 “鏈路中斷、主時鐘失效或參數(shù)不匹配”,典型類型如下: 1. 鏈路類
    的頭像 發(fā)表于 10-22 14:15 ?525次閱讀

    Cortex-M0+處理器的HardFault錯誤介紹

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

    分析負載特性時,有哪些常見錯誤或誤區(qū)?

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

    知曉常見的銅纜安裝錯誤并避免

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

    國巨貼片電容的電壓標識有哪些常見錯誤?

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

    NCS放大器DAD3350常見錯誤碼及解決方案

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

    電商API常見錯誤排查指南:避免集成陷阱

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

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

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

    原理圖和PCB設(shè)計中的常見錯誤

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

    記憶示波器設(shè)置有哪些常見錯誤?

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

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

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