色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

python常見異常類型

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

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

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

還有一些錯誤,則是不可預料的錯誤,但是完全有可能發生的,比如文件不存在、磁盤空間不足、網絡堵塞、系統錯誤等等。下面這個例子,使用 open 函數打開 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'

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

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

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

1.SyntaxError

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

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

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

2、TypeError

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

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

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

4、KeyError

KeyError是關鍵字錯誤,這個異常主要發生在字典中,比如當用戶試圖訪問一個字典中不存在的鍵時會被引發。

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

5、ValueError

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

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

比如字典有get方法,而列表卻沒有,所以對一個列表對象調用該方法就會引發該異常。

>>> 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是指變量名稱發生錯誤,比如用戶試圖調用一個還未被賦值或初始化的變量時會被觸發。

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

8、IOError

IOError 為打開文件錯誤,當用戶試圖以讀取方式打開一個不存在的文件時引發。

>>> 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為迭代器錯誤,當訪問至迭代器最后一個值時仍然繼續訪問,就會引發這種異常,提醒用戶迭代器中已經沒有值可供訪問了。

>>> 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 為斷言錯誤,當用戶利用斷言語句檢測異常時,如果斷言語句檢測的表達式為假,則會引發這種異常。

>>> 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

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

    關注

    56

    文章

    4800

    瀏覽量

    84820
  • 異常
    +關注

    關注

    0

    文章

    22

    瀏覽量

    9263
收藏 人收藏

    評論

    相關推薦

    電橋電路的常見錯誤分析

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

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

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

    常見電位測量錯誤及解決方案

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

    EEPROM編程常見錯誤及解決方案

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

    aes加密的常見錯誤及解決方案

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

    pcb板設計中的常見錯誤

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

    服務器錯誤是怎么回事?常見錯誤原因及解決方法匯總

    服務器錯誤是怎么回事?最常見的原因分有六個,分別是:硬件問題、軟件問題、網絡問題、資源耗盡、數據庫、文件權限問題。可以根據以下具體錯誤原因進行辨別,并選擇適合的解決方法。關于常見服務器
    的頭像 發表于 08-12 10:11 ?1525次閱讀

    嵌入式C編程常用的異常錯誤處理

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

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

    一站式PCBA智造廠家今天為大家講講避免常見pcb設計錯誤的方法有哪些?避免常見PCB設計錯誤的方法。避免常見的PCB設計
    的頭像 發表于 06-07 09:15 ?509次閱讀

    常見的CAN中繼器應用錯誤及原因有哪些?

    CAN中繼器在應用中可能會遇到一些常見錯誤,這些錯誤可能源于多個方面。
    的頭像 發表于 05-08 10:16 ?654次閱讀

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

    Modbus IO通信協議中的錯誤代碼通常用于標識通信過程中出現的錯誤異常情況。
    的頭像 發表于 03-06 09:03 ?2713次閱讀

    串口通信常見錯誤和故障排除方法

    在進行串口通信時,確實可能會遇到一些常見錯誤和問題。
    的頭像 發表于 03-02 14:19 ?4088次閱讀

    PCB設計工作中常見錯誤有哪些?

    一站式PCBA智造廠家今天為大家講講PCB設計工作中常見錯誤有哪些?PCB設計中最常見到的六個錯誤。PCB設計是電子產品制造中非常關鍵的一環。它的質量直接關系到整個產品的性能和穩定性
    的頭像 發表于 02-21 09:32 ?593次閱讀
    PCB設計工作中<b class='flag-5'>常見</b>的<b class='flag-5'>錯誤</b>有哪些?

    如何解決C語言中的“訪問權限沖突”異常?C語言引發異常原因分析

    如何解決C語言中的“訪問權限沖突”異常?C語言引發異常原因分析? 在C語言中,訪問權限沖突異常通常是由于嘗試訪問未授權的變量、函數或其他數據結構而引起的。這種異常是編程中
    的頭像 發表于 01-12 16:03 ?5929次閱讀

    盤點PCB設計中的常見錯誤

    搞技術,難免存在錯誤,只有經歷過錯誤,才能更快地成長。PCB設計也一樣,今天就來盤點一下PCB設計中最常見錯誤
    的頭像 發表于 01-12 09:53 ?1433次閱讀
    盤點PCB設計中的<b class='flag-5'>常見</b><b class='flag-5'>錯誤</b>
    主站蜘蛛池模板: 中文无码在线观| 久久视热频这里只精品| 午夜国产精品免费观看| 久久精品一区| 丰满少妇69激情啪啪无码| 一级做a爰片久久毛片苍井优| 日本中文一区| 久久婷婷久久一区二区三区| 大学生第一次破女在线观看| 在线日韩欧美一区二区三区| 亚欧视频在线观看| 人妻久久久精品99系列AV| 久久毛片网站| 国模孕妇模特季玥之粉红| 成人精品亚洲| 99久久国产露脸精品麻豆 | 六六影院午夜伦理| 好吊射视频988gaocom| 国产成人精品123区免费视频 | 99久久国产露脸精品国产吴梦梦| 亚洲午夜久久久精品电影院| 少妇连续高潮抽搐痉挛昏厥| 欧美 国产 日产 韩国 在线| 久久日本精品国产精品| 国内精品久久久久久西瓜色吧| 高中生高潮抽搐喷出白浆视频| 99热在线精品视频| 9797在线看片亚洲精品| 在线a亚洲视频| 夜色资源站国产www在线视频| 亚洲精品国产高清嫩草影院| 午夜AV内射一区二区三区红桃视| 色窝窝777欧美午夜精品影院| 日本久久精品视频| 人妻中文字幕无码久久AV爆| 欧美区 bt| 青青草原影视| 日本妞欧洲| 色欲AV精品一区二区入口| 色婷婷国产精品视频一区二区| 乳女教师欲乱动漫无修版动画|