欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)

 更新時(shí)間:2023年06月19日 10:08:58   作者:五包辣條!  
在編寫程序時(shí)難免會(huì)遇到錯(cuò)誤,有的是編寫人員疏忽造成的語(yǔ)法錯(cuò)誤,有的是程序內(nèi)部隱含邏輯問(wèn)題造成的數(shù)據(jù)錯(cuò)誤等等,這篇文章主要給大家介紹了關(guān)于Python十類常見異常類型總結(jié)的相關(guān)資料,文中還附捕獲及異常處理方式,需要的朋友可以參考下

前言

今天給大家講講我們剛開始寫代碼是都會(huì)出現(xiàn)的問(wèn)題-我們剛開始常見的異常以及處理方法!

異常是指在程序運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤或異常情況,例如除以0、訪問(wèn)不存在的變量等。Python提供了一些內(nèi)置的異常類型,同時(shí)也支持自定義異常類型。

十類異常

1.TypeError

當(dāng)操作或函數(shù)應(yīng)用于不適當(dāng)類型的對(duì)象時(shí)引發(fā)。

例如:

a = 5 + '10'

這個(gè)例子中,我們?cè)噲D將整數(shù)5和字符串’10’相加,這是不允許的,因?yàn)樗鼈兪遣煌念愋汀?/p>

2.ValueError

當(dāng)函數(shù)或操作的參數(shù)具有正確的類型但不合法時(shí)引發(fā)。

例如:

int('abc')

這個(gè)例子中,我們?cè)噲D將字符串’abc’轉(zhuǎn)換為整數(shù),但是’abc’不是一個(gè)有效的整數(shù),因此會(huì)引發(fā)ValueError異常。

3.NameError

當(dāng)嘗試訪問(wèn)一個(gè)未定義的變量時(shí),會(huì)拋出NameError異常。

例如:

print(x)

這個(gè)例子中,我們嘗試打印變量x的值,但是x沒(méi)有被定義,因此會(huì)引發(fā)NameError異常。

4.IndexError

當(dāng)嘗試訪問(wèn)列表、元組或字符串中不存在的索引時(shí)引發(fā)。

例如:

a = [1, 2, 3]
print(a[3])

這個(gè)例子中,我們?cè)噲D訪問(wèn)列表a的第四個(gè)元素,但是a只有三個(gè)元素,因此會(huì)引發(fā)IndexError異常。

5.KeyError

當(dāng)嘗試訪問(wèn)字典中不存在的鍵時(shí)引發(fā)。

例如:

d = {'a': 1, 'b': 2}
print(d['c'])

這個(gè)例子中,我們?cè)噲D訪問(wèn)字典d中不存在的鍵’c’,因此會(huì)引發(fā)KeyError異常。

6.ZeroDivisionError

當(dāng)嘗試除以零時(shí)引發(fā)。

例如:

a = 5 / 0

這個(gè)例子中,我們?cè)噲D將5除以0,這是不允許的,因?yàn)槌龜?shù)不能為零,因此會(huì)引發(fā)ZeroDivisionError異常。

7.IOError

當(dāng)嘗試讀取不存在的文件或無(wú)法訪問(wèn)文件時(shí)引發(fā)。

例如:

f = open('nonexistent_file.txt', 'r')

這個(gè)例子中,我們?cè)噲D打開一個(gè)不存在的文件nonexistent_file.txt,因此會(huì)引發(fā)IOError異常。

8.ImportError

當(dāng)嘗試導(dǎo)入不存在的模塊或包時(shí)引發(fā)。

例如:

import nonexistent_module

這個(gè)例子中,我們?cè)噲D導(dǎo)入一個(gè)不存在的模塊nonexistent_module,因此會(huì)引發(fā)ImportError異常。

9.AttributeError

當(dāng)嘗試訪問(wèn)對(duì)象不存在的屬性時(shí)引發(fā)。

例如:

s = 'hello'
print(s.uppercase())

這個(gè)例子中,我們?cè)噲D調(diào)用字符串s的不存在的方法uppercase(),因此會(huì)引發(fā)AttributeError異常。

10.KeyboardInterrupt

當(dāng)用戶中斷程序執(zhí)行時(shí)引發(fā)。

例如:

while True:
    try:
        x = input('Enter a number: ')
        break
    except KeyboardInterrupt:
        print('You pressed Ctrl+C!')

這個(gè)例子中,我們?cè)谝粋€(gè)無(wú)限循環(huán)中等待用戶輸入一個(gè)數(shù)字,但是如果用戶按下Ctrl+C,程序會(huì)引發(fā)KeyboardInterrupt異常,我們可以捕獲這個(gè)異常并打印一條消息。

異常捕獲以及處理

在Python中,可以使用try-except語(yǔ)句來(lái)捕獲異常并進(jìn)行處理。try語(yǔ)句塊中包含可能會(huì)出現(xiàn)異常的代碼,如果出現(xiàn)異常,則會(huì)跳轉(zhuǎn)到except語(yǔ)句塊中進(jìn)行處理??梢允褂枚鄠€(gè)except語(yǔ)句塊來(lái)處理不同類型的異常,也可以使用一個(gè)except語(yǔ)句塊來(lái)處理所有類型的異常。

例如:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("除以0錯(cuò)誤")

除了使用內(nèi)置的異常類型,還可以自定義異常類型。自定義異常類型通常繼承自Exception類或其子類。例如:

class MyException(Exception):
    pass
try:
    raise MyException("自定義異常")
except MyException as e:
    print(e)

在Python中,還可以使用finally語(yǔ)句塊來(lái)定義無(wú)論是否出現(xiàn)異常都需要執(zhí)行的代碼。例如:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("除以0錯(cuò)誤")
finally:
    print("finally語(yǔ)句塊")

總結(jié)

以上是Python中常見的異常類型和異常處理方法。在編寫程序時(shí),應(yīng)該盡可能地避免出現(xiàn)異常情況,同時(shí)也應(yīng)該合理地處理可能出現(xiàn)的異常。

到此這篇關(guān)于Python十類常見異常類型總結(jié)的文章就介紹到這了,更多相關(guān)Python十類異常類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重

    利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重

    這篇文章主要介紹了利用Python?Difflib庫(kù)強(qiáng)大的文字比較功能快速輕松查重實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)

    Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)

    OpenCV用C++語(yǔ)言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時(shí)視覺(jué)應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你通過(guò)OpenCV實(shí)現(xiàn)圖像堆疊
    2022-04-04
  • Python logging日志模塊使用指南

    Python logging日志模塊使用指南

    Python 的 logging 模塊提供了標(biāo)準(zhǔn)的日志接口,可以通過(guò)它存儲(chǔ)各種格式的日志,日志記錄提供了一組便利功能,用于簡(jiǎn)單的日志記錄用法,本文就給大家簡(jiǎn)單的介紹一下Python logging日志模塊使用方法,需要的朋友可以參考下
    2023-08-08
  • Python 時(shí)間操作datetime詳情(下)

    Python 時(shí)間操作datetime詳情(下)

    我們?cè)谏弦晃膁atetime模塊對(duì)datetime模塊中包含了六個(gè)類對(duì)象如date、time、datetime等對(duì)時(shí)間和日期進(jìn)行操作。這一篇文章我們繼續(xù)上一篇文章的內(nèi)容學(xué)習(xí)datetime模塊中六大類的相關(guān)方法和屬性
    2021-11-11
  • Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實(shí)例匯總

    Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實(shí)例匯總

    這篇文章主要給大家介紹了關(guān)于Python?"手繪風(fēng)格"數(shù)據(jù)可視化方法實(shí)現(xiàn)的相關(guān)資料,本文分別給大家?guī)?lái)了Python-matplotlib手繪風(fēng)格圖表繪制、Python-cutecharts手繪風(fēng)格圖表繪制以及Python-py-roughviz手繪風(fēng)格圖表繪制,需要的朋友可以參考下
    2022-02-02
  • 解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式

    解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式

    這篇文章主要介紹了解決PDF 轉(zhuǎn)圖片時(shí)丟字的一種可能方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過(guò)程解析

    基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過(guò)程解析

    這篇文章主要介紹了基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 教你實(shí)現(xiàn)Ubuntu安裝Python

    教你實(shí)現(xiàn)Ubuntu安裝Python

    這篇文章主要為大家介紹了Ubuntu安裝Python的實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python實(shí)現(xiàn)的微信支付方式總結(jié)【三種方式】

    Python實(shí)現(xiàn)的微信支付方式總結(jié)【三種方式】

    這篇文章主要介紹了Python實(shí)現(xiàn)的微信支付方式,結(jié)合實(shí)例形式總結(jié)分析了Python實(shí)現(xiàn)的三種微信支付方式及相關(guān)操作步驟、原理、注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • 基于Python實(shí)現(xiàn)人臉識(shí)別相似度對(duì)比功能

    基于Python實(shí)現(xiàn)人臉識(shí)別相似度對(duì)比功能

    人臉識(shí)別技術(shù)是一種通過(guò)計(jì)算機(jī)對(duì)人臉圖像進(jìn)行分析和處理,從而實(shí)現(xiàn)自動(dòng)識(shí)別和辨認(rèn)人臉的技術(shù),隨著計(jì)算機(jī)視覺(jué)和模式識(shí)別領(lǐng)域的快速發(fā)展,人臉識(shí)別技術(shù)取得了長(zhǎng)足的進(jìn)步,本文給大家介紹了基于Python實(shí)現(xiàn)人臉識(shí)別相似度對(duì)比功能,感興趣的朋友可以參考下
    2024-01-01

最新評(píng)論