最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python常見(jiàn)異常類(lèi)型處理

 更新時(shí)間:2021年12月12日 09:33:11   作者:C語(yǔ)言中國(guó)網(wǎng)  
這篇文章主要個(gè)大家分享的是Python常見(jiàn)異常類(lèi)型處理,編寫(xiě)程序的過(guò)程,難免會(huì)遇到一些錯(cuò)誤,程序邏輯又或者運(yùn)行與系統(tǒng)發(fā)生各種沖突等等,下面我們就來(lái)看看那些我們?cè)诰幊讨谐S龅降漠惓6际窃趺刺幚淼陌?,需要的小伙伴可以參考一?/div>

前言:

開(kāi)發(fā)人員在編寫(xiě)程序時(shí),難免會(huì)遇到錯(cuò)誤,有的是編寫(xiě)人員疏忽造成的語(yǔ)法錯(cuò)誤,有的是程序內(nèi)部隱含邏輯問(wèn)題造成的數(shù)據(jù)錯(cuò)誤,還有的是程序運(yùn)行時(shí)與系統(tǒng)的規(guī)則沖突造成的系統(tǒng)錯(cuò)誤,等等。

總的來(lái)說(shuō),編寫(xiě)程序時(shí)遇到的錯(cuò)誤可大致分為 2 類(lèi),分別為語(yǔ)法錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。

1.Python語(yǔ)法錯(cuò)誤

語(yǔ)法錯(cuò)誤,也就是解析代碼時(shí)出現(xiàn)的錯(cuò)誤。當(dāng)代碼不符合 Python 語(yǔ)法規(guī)則時(shí),Python解釋器在解析時(shí)就會(huì)報(bào)出 SyntaxError 語(yǔ)法錯(cuò)誤,與此同時(shí)還會(huì)明確指出最早探測(cè)到錯(cuò)誤的語(yǔ)句。

例如:

print "Hello,World!"

我們知道,Python 3 已不再支持上面這種寫(xiě)法,所以在運(yùn)行時(shí),解釋器會(huì)報(bào)如下錯(cuò)誤:

SyntaxError: Missing parentheses in call to 'print'

語(yǔ)法錯(cuò)誤多是開(kāi)發(fā)者疏忽導(dǎo)致的,屬于真正意義上的錯(cuò)誤,是解釋器無(wú)法容忍的,因此,只有將程序中的所有語(yǔ)法錯(cuò)誤全部糾正,程序才能執(zhí)行。

2.Python運(yùn)行時(shí)錯(cuò)誤

運(yùn)行時(shí)錯(cuò)誤,即程序在語(yǔ)法上都是正確的,但在運(yùn)行時(shí)發(fā)生了錯(cuò)誤。

例如:

a = 1/0

上面這句代碼的意思是“用 1 除以 0,并賦值給 a 。

因?yàn)?0 作除數(shù)是沒(méi)有意義的,所以運(yùn)行后會(huì)產(chǎn)生如下錯(cuò)誤:

>>> a = 1/0
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a = 1/0
ZeroDivisionError: division by zero

以上運(yùn)行輸出結(jié)果中,前兩段指明了錯(cuò)誤的位置,最后一句表示出錯(cuò)的類(lèi)型。在 Python 中,把這種運(yùn)行時(shí)產(chǎn)生錯(cuò)誤的情況叫做異常(Exceptions)。這種異常情況還有很多,常見(jiàn)的幾種異常情況如表 1 所示

表 1 Python常見(jiàn)異常類(lèi)型:

異常類(lèi)型 含義 實(shí)例
AssertionError 當(dāng) assert 關(guān)鍵字后的條件為假時(shí),程序運(yùn)行會(huì)停止并拋出 AssertionError 異常 >>> demo_list = ['C語(yǔ)言中文網(wǎng)']
>>> assert len(demo_list) > 0
>>> demo_list.pop()
'C語(yǔ)言中文網(wǎng)'
>>> assert len(demo_list) > 0
Traceback (most recent call last):
? File "<pyshell#6>", line 1, in <module>
??? assert len(demo_list) > 0
AssertionError
AttributeError 當(dāng)試圖訪問(wèn)的對(duì)象屬性不存在時(shí)拋出的異常 >>> demo_list = ['C語(yǔ)言中文網(wǎng)']
>>> demo_list.len
Traceback (most recent call last):
? File "<pyshell#10>", line 1, in <module>
??? demo_list.len
AttributeError: 'list' object has no attribute 'len'
IndexError 索引超出序列范圍會(huì)引發(fā)此異常 >>> demo_list = ['C語(yǔ)言中文網(wǎng)']
>>> demo_list[3]
Traceback (most recent call last):
? File "<pyshell#8>", line 1, in <module>
??? demo_list[3]
IndexError: list index out of range
KeyError 字典中查找一個(gè)不存在的關(guān)鍵字時(shí)引發(fā)此異常 >>> demo_dict={'C語(yǔ)言中文網(wǎng)':"c.biancheng.net"}
>>> demo_dict["C語(yǔ)言"]
Traceback (most recent call last):
? File "<pyshell#12>", line 1, in <module>
??? demo_dict["C語(yǔ)言"]
KeyError: 'C語(yǔ)言'
NameError 嘗試訪問(wèn)一個(gè)未聲明的變量時(shí),引發(fā)此異常 >>> C語(yǔ)言中文網(wǎng)
Traceback (most recent call last):
? File "<pyshell#15>", line 1, in <module>
??? C語(yǔ)言中文網(wǎng)
NameError: name 'C語(yǔ)言中文網(wǎng)' is not defined
TypeError 不同類(lèi)型數(shù)據(jù)之間的無(wú)效操作 >>> 1+'C語(yǔ)言中文網(wǎng)'
Traceback (most recent call last):
? File "<pyshell#17>", line 1, in <module>
??? 1+'C語(yǔ)言中文網(wǎng)'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ZeroDivisionError 除法運(yùn)算中除數(shù)為 0 引發(fā)此異常 >>> a = 1/0
Traceback (most recent call last):
? File "<pyshell#2>", line 1, in <module>
??? a = 1/0
ZeroDivisionError: division by zero

提示:表中的異常類(lèi)型不需要記住,只需簡(jiǎn)單了解即可。

當(dāng)一個(gè)程序發(fā)生異常時(shí),代表該程序在執(zhí)行時(shí)出現(xiàn)了非正常的情況,無(wú)法再執(zhí)行下去。默認(rèn)情況下,程序是要終止的。如果要避免程序退出,可以使用捕獲異常的方式獲取這個(gè)異常的名稱,再通過(guò)其他的邏輯代碼讓程序繼續(xù)運(yùn)行,這種根據(jù)異常做出的邏輯處理叫作異常處理。

開(kāi)發(fā)者可以使用異常處理全面地控制自己的程序。異常處理不僅僅能夠管理正常的流程運(yùn)行,還能夠在程序出錯(cuò)時(shí)對(duì)程序進(jìn)行必的處理。大大提高了程序的健壯性和人機(jī)交互的友好性。

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

相關(guān)文章

  • Python顯示進(jìn)度條的方法

    Python顯示進(jìn)度條的方法

    這篇文章主要介紹了Python顯示進(jìn)度條的方法,以實(shí)例的形式進(jìn)行了詳細(xì)的分析,是一個(gè)非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • Python and、or以及and-or語(yǔ)法總結(jié)

    Python and、or以及and-or語(yǔ)法總結(jié)

    這篇文章主要介紹了Python and、or以及and-or語(yǔ)法總結(jié),本文分別給出實(shí)例講解它們的使用方法,需要的朋友可以參考下
    2015-04-04
  • python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(四):域名系統(tǒng)

    python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(四):域名系統(tǒng)

    當(dāng)我們?cè)谏暇W(wǎng)的時(shí)候,通常輸入的是網(wǎng)址,其實(shí)這就是一個(gè)域名,而我們計(jì)算機(jī)網(wǎng)絡(luò)上的計(jì)算機(jī)彼此之間只能用IP地址才能相互識(shí)別
    2014-06-06
  • 如何向scrapy中的spider傳遞參數(shù)的幾種方法

    如何向scrapy中的spider傳遞參數(shù)的幾種方法

    這篇文章主要介紹了如何向scrapy中的spider傳遞參數(shù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python讀取TIF影像的多種方法

    Python讀取TIF影像的多種方法

    Python提供了豐富的庫(kù)來(lái)讀取和處理TIFF文件,其中PIL庫(kù)是最常用的,本文給大家介紹Python讀取TIF影像的幾種方法,需要的朋友可以參考下
    2023-07-07
  • Django框架HttpResponse和HttpRequest對(duì)象學(xué)習(xí)

    Django框架HttpResponse和HttpRequest對(duì)象學(xué)習(xí)

    這篇文章主要介紹了Django框架HttpResponse和HttpRequest對(duì)象學(xué)習(xí),有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法

    Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單HTML表格解析的方法,涉及Python基于libxml2dom模塊操作html頁(yè)面元素的技巧,需要的朋友可以參考下
    2015-06-06
  • python中setuptools的作用是什么

    python中setuptools的作用是什么

    在本篇文章里小編給大家分享的是一篇關(guān)于python中setuptools的作用以及相關(guān)用法,需要的朋友們可以跟著學(xué)習(xí)下。
    2020-06-06
  • python?調(diào)制解調(diào)的實(shí)現(xiàn)

    python?調(diào)制解調(diào)的實(shí)現(xiàn)

    在Python中,可以使用SciPy和NumPy庫(kù)來(lái)處理信號(hào),包括進(jìn)行FM信號(hào)的解調(diào),本文主要介紹了python?調(diào)制解調(diào)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • python的re正則表達(dá)式實(shí)例代碼

    python的re正則表達(dá)式實(shí)例代碼

    這篇文章主要介紹了python的re正則表達(dá)式,分享了一則re模塊實(shí)現(xiàn)的正則表達(dá)式實(shí)例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

凤凰县| 织金县| 额济纳旗| 清远市| 黎平县| 虞城县| 凤翔县| 迁西县| 苏尼特左旗| 扶风县| 隆尧县| 重庆市| 云霄县| 秭归县| 开平市| 沅江市| 青铜峡市| 罗平县| 浪卡子县| 皋兰县| 聂拉木县| 蓬莱市| 赤水市| 阜新| 舒城县| 黄陵县| 溆浦县| 巨野县| 常熟市| 大田县| 清徐县| 汉中市| 舟山市| 和政县| 突泉县| 兴文县| 赞皇县| 江北区| 宣武区| 黎平县| 黄大仙区|