在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-04 16:58 ? 次閱讀

python常見異常類型

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

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

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

還有一些錯(cuò)誤,則是不可預(yù)料的錯(cuò)誤,但是完全有可能發(fā)生的,比如文件不存在、磁盤空間不足、網(wǎng)絡(luò)堵塞、系統(tǒng)錯(cuò)誤等等。下面這個(gè)例子,使用 open 函數(shù)打開 demo.txt 文件,可是在當(dāng)前目錄下并沒有這個(gè)文件,所以一定會打開失敗,拋出了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)行過程中出現(xiàn)異常中斷和退出的錯(cuò)誤,我們統(tǒng)稱為異常。正常情況下,異常都不會被程序處理,而是以錯(cuò)誤信息的形式展現(xiàn)出來。

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

在發(fā)生異常的時(shí)候,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)置了哪些錯(cuò)誤和異常類型,除非你需要去捕獲它,關(guān)于捕獲的內(nèi)容,我會放在下一節(jié)。這一節(jié)先來認(rèn)識一下 Python 中有哪些常見的錯(cuò)誤和異常,對于新手,下面的內(nèi)容大概過一下就好,不用深究,因?yàn)檫@些在你以后的編碼中都會遇到的。

1.SyntaxError

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

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

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

2、TypeError

TypeError,是類型錯(cuò)誤,也就是說將某個(gè)操作或功能應(yīng)用于不合適類型的對象時(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ò)誤,比如最常見下標(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)用戶試圖訪問一個(gè)字典中不存在的鍵時(shí)會被引發(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í)會引發(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)用戶試圖訪問一個(gè)對象不存在的屬性時(shí)會引發(fā)。

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

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

8、IOError

IOError 為打開文件錯(cuò)誤,當(dāng)用戶試圖以讀取方式打開一個(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)訪問至迭代器最后一個(gè)值時(shí)仍然繼續(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 為斷言錯(cuò)誤,當(dāng)用戶利用斷言語句檢測異常時(shí),如果斷言語句檢測的表達(dá)式為假,則會引發(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)的語言,如果縮進(jìn)有問題,就會導(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ò)誤或者路徑不對、包未安裝,都會拋出 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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4811

    瀏覽量

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

    關(guān)注

    0

    文章

    23

    瀏覽量

    9270
收藏 人收藏

    評論

    相關(guān)推薦

    常見xgboost錯(cuò)誤及解決方案

    XGBoost(eXtreme Gradient Boosting)是一種流行的機(jī)器學(xué)習(xí)算法,用于解決分類和回歸問題。盡管它非常強(qiáng)大和靈活,但在使用過程中可能會遇到一些常見錯(cuò)誤。以下是一些常見
    的頭像 發(fā)表于 01-19 11:22 ?498次閱讀

    電橋電路的常見錯(cuò)誤分析

    電橋電路的常見錯(cuò)誤分析主要包括以下幾個(gè)方面: 一、電阻值不準(zhǔn)確 電阻值不準(zhǔn)確是電橋電路常見錯(cuò)誤之一。這可能是由于電阻本身的誤差,如電阻的標(biāo)稱值與實(shí)際值存在偏差,或者電阻老化、溫度變化
    的頭像 發(fā)表于 01-09 10:08 ?176次閱讀

    電源 PCB 布局中的常見錯(cuò)誤及避免方式

    異常現(xiàn)象、根本原因以及優(yōu)化布局的方法和相關(guān)技巧。 1. 常見錯(cuò)誤一:功率器件散熱不良 異常現(xiàn)象 功率器件溫度過高,可能導(dǎo)致器件性能下降,甚至損壞。例如,MOSFET 的導(dǎo)通電阻會隨溫
    的頭像 發(fā)表于 01-08 15:28 ?475次閱讀

    常見電位測量錯(cuò)誤及解決方案

    常見電位測量錯(cuò)誤及解決方案 1. 接觸不良 錯(cuò)誤描述: 在電位測量中,接觸不良是最常見的問題之一。這可能是由于探針接觸不良、氧化層、污垢或腐蝕造成的。 解決方案: 清潔探針和被測點(diǎn),確
    的頭像 發(fā)表于 12-28 14:08 ?227次閱讀

    EEPROM編程常見錯(cuò)誤及解決方案

    EEPROM(電可擦可編程只讀存儲器)在編程過程中可能會遇到多種錯(cuò)誤。以下是一些常見的EEPROM編程錯(cuò)誤及其解決方案: 常見錯(cuò)誤 數(shù)據(jù)寫入
    的頭像 發(fā)表于 12-16 17:08 ?1539次閱讀

    aes加密的常見錯(cuò)誤及解決方案

    AES(Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))是一種對稱加密算法,它使用固定長度的密鑰對數(shù)據(jù)進(jìn)行加密。在使用AES加密時(shí),可能會遇到一些常見錯(cuò)誤。以下是對這些錯(cuò)誤
    的頭像 發(fā)表于 11-14 15:13 ?2200次閱讀

    常見傅里葉變換錯(cuò)誤及解決方法

    傅里葉變換是一種數(shù)學(xué)工具,用于將信號從時(shí)域轉(zhuǎn)換到頻域,以便分析其頻率成分。在使用傅里葉變換時(shí),可能會遇到一些常見錯(cuò)誤。 1. 采樣定理錯(cuò)誤 錯(cuò)誤描述: 在進(jìn)行傅里葉變換之前,沒有正確
    的頭像 發(fā)表于 11-14 09:42 ?1204次閱讀

    pcb板設(shè)計(jì)中的常見錯(cuò)誤

    錯(cuò)誤,這些錯(cuò)誤可能會導(dǎo)致電路性能下降、成本增加甚至項(xiàng)目失敗。 1. 布局不合理 錯(cuò)誤分析 布局是PCB設(shè)計(jì)的基礎(chǔ),不合理的布局會導(dǎo)致信號干擾、電磁兼容性(EMC)問題以及熱管理問題。常見
    的頭像 發(fā)表于 11-04 13:58 ?428次閱讀

    服務(wù)器錯(cuò)誤是怎么回事?常見錯(cuò)誤原因及解決方法匯總

    服務(wù)器錯(cuò)誤是怎么回事?最常見的原因分有六個(gè),分別是:硬件問題、軟件問題、網(wǎng)絡(luò)問題、資源耗盡、數(shù)據(jù)庫、文件權(quán)限問題。可以根據(jù)以下具體錯(cuò)誤原因進(jìn)行辨別,并選擇適合的解決方法。關(guān)于常見服務(wù)器
    的頭像 發(fā)表于 08-12 10:11 ?1656次閱讀

    嵌入式C編程常用的異常錯(cuò)誤處理

    嵌入式C編程中,異常錯(cuò)誤處理是確保系統(tǒng)穩(wěn)定性和可靠性的重要部分。以下是一些常見異常錯(cuò)誤處理方法及其詳細(xì)說明和示例: 1. 斷言 (Ass
    發(fā)表于 08-06 14:32

    PCB線路板制造中常見錯(cuò)誤有哪些,如何避免?

    一站式PCBA智造廠家今天為大家講講避免常見pcb設(shè)計(jì)錯(cuò)誤的方法有哪些?避免常見PCB設(shè)計(jì)錯(cuò)誤的方法。避免常見的PCB設(shè)計(jì)
    的頭像 發(fā)表于 06-07 09:15 ?563次閱讀

    常見的CAN中繼器應(yīng)用錯(cuò)誤及原因有哪些?

    CAN中繼器在應(yīng)用中可能會遇到一些常見錯(cuò)誤,這些錯(cuò)誤可能源于多個(gè)方面。
    的頭像 發(fā)表于 05-08 10:16 ?738次閱讀

    介紹一些常見的Modbus IO通信錯(cuò)誤代碼及其含義

    Modbus IO通信協(xié)議中的錯(cuò)誤代碼通常用于標(biāo)識通信過程中出現(xiàn)的錯(cuò)誤異常情況。
    的頭像 發(fā)表于 03-06 09:03 ?2891次閱讀

    串口通信常見錯(cuò)誤和故障排除方法

    在進(jìn)行串口通信時(shí),確實(shí)可能會遇到一些常見錯(cuò)誤和問題。
    的頭像 發(fā)表于 03-02 14:19 ?4317次閱讀

    PCB設(shè)計(jì)工作中常見錯(cuò)誤有哪些?

    一站式PCBA智造廠家今天為大家講講PCB設(shè)計(jì)工作中常見錯(cuò)誤有哪些?PCB設(shè)計(jì)中最常見到的六個(gè)錯(cuò)誤。PCB設(shè)計(jì)是電子產(chǎn)品制造中非常關(guān)鍵的一環(huán)。它的質(zhì)量直接關(guān)系到整個(gè)產(chǎn)品的性能和穩(wěn)定性
    的頭像 發(fā)表于 02-21 09:32 ?636次閱讀
    PCB設(shè)計(jì)工作中<b class='flag-5'>常見</b>的<b class='flag-5'>錯(cuò)誤</b>有哪些?
    主站蜘蛛池模板: 国产handjob手交在线播放 | 天天干夜操 | 中文字幕欧美成人免费 | 国产精品激情综合久久 | 天天草综合网 | 久久99热精品免费观看无卡顿 | 黄色免费在线视频 | 色视频网站免费 | 亚洲免费视频一区二区三区 | 国产在线精品观看一区 | 黄色免费在线视频 | 国产三级精品最新在线 | 欧美日韩亚洲国内综合网俺 | 久久久久久久网站 | 香蕉免费在线视频 | 成人综合激情 | 美女被羞羞产奶视频网站 | 国产农村妇女毛片精品久久 | 亚洲一区二区在线 | 九九热国产在线 | 激情综合网五月激情 | 欧美一区二区三区不卡视频 | 国产性色视频 | 五月天精品在线 | a级精品九九九大片免费看 a级毛毛片看久久 | 国内91视频 | 亚洲午夜日韩高清一区 | 国产福利萌白酱喷水视频铁牛 | 九九热在线视频观看这里只有精品 | 成年美女黄网站色大免费视频 | 全午夜免费一级毛片 | 色内内免费视频播放 | 亚洲精品美女久久久aaa | 亚洲一卡二卡在线 | 亚洲性色成人 | china国语对白刺激videos chinese国产videoxx实拍 | 国内亚州视频在线观看 | 成人欧美一区二区三区小说 | 国产偷窥女洗浴在线观看亚洲 | 小说老卫陈红张敏陈法蓉 | 亚洲人成伊人成综合网久久 |