中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python異常的概述和利用

發布時間:2021-09-10 07:49:29 來源:億速云 閱讀:131 作者:chen 欄目:大數據

這篇文章主要介紹“python異常的概述和利用”,在日常操作中,相信很多人在python異常的概述和利用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python異常的概述和利用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、知識回顧:

上一節,我們講了生成器,我們先來回顧一下生成器的使用。
生成器:yield使得函數凍結且提交一個值。
每次使用生成器,我們以前都使用了for循環,實際上使用的是next函數來進行下一次迭代。
總結得出,我們使用的生成器依賴于一個函數。
所謂遞歸生成器,實則是在生成器中,再次調用生成器。
上一次我們沒有實測next函數調用的問題,以下進行補充。

補充next函數:

作用:主要是用來返回下一次迭代器的返回值。
使用方法:next(迭代器,[默認值])
如果直接使用兩次調用自定義迭代器函數的方式,將返回的是每一次迭代器的初始位置的值,也就是說,指針總是指向的是初始的位置。
我們應該把自定義的迭代器賦值給一個變量,然后再使用next函數對這個變量進行下一次迭代。
舉例:

#使用變量來表示一個實際的生成器對象

scq=shengChengqi()

print(next(scq))

print(next(scq))


二、異常概述

提問:什么是異常?

不是普通的正常的代碼執行情況。實際上是屬于系統內代碼有問題導致的報錯。異常,我們往往使用Exception來表示。

三、異常的分類

我們這里討論的異常主要分為兩大類。

一類是自動自動拋出的異常,系統編譯器自動判斷來拋出異常。

舉例:

laoliuAge=31/0

拋出異常ZeroDivisionError: division by zero

一類是人工手動拋出的異常,使用raise來手動拋出。

手動拋出異常使用:raise Exception,這里的Exception是一個異常類,類的話我就可以使用構造方法進行初始值的傳入。也就是說傳入的是異常的描述。我們可以使用raise Exception(“這里是我們的自定義異常”)

提問:實際中我們如何使用手動來拋出異常?

我們往往需要結合一些條件判斷來手工拋出異常。

舉例如下:

a=1

if a==1:

    raise Exception("這里是老劉拋出的異常")

else:

    print("沒有異常")

三、異常的利用

舉例:

1.判斷是否是int類型的數據

2.判斷是否是string類型的數據

歸納一下:

1.我們可以利用異常來做一些數據類型的轉換。

2.我們可以利用異常來進行數據類型的判斷。

四、重要的內建類異常

  • Exception所有異常的基類

  • AttributeError屬性引用或屬性失敗時拋出的異常

  • OSError當操作系統無法執行任務時拋出的異常

  • IndexError在使用序列中不存在的索引時拋出的異常

  • KeyError在使用映射中不存在的鍵值時拋出的異常

  • NameError找不到名字(變量)時拋出的異常

  • SyntaxError在代碼為錯誤形式時觸發

  • TypeError在內建操作或函數應用于錯誤類型的對象時拋出的異常

  • ValueError在內建操作或者函數應用于正確類型的對象,但該對象使用了不適合的值時拋出的異常

  • ZeroDivisionError在除法或者取模操作的第2個參數值為0時拋出的異常

五、總結強調

1.理解什么是異常?

2.理解異常的分類

3.掌握手動拋出異常的方法 

4.學會利用異常,把異常的拋出為己所用

本節源代碼:

# def shengChengqi():#     list1=[3,5,2]#     for i in list1:#         yield i## #使用變量來表示一個實際的生成器對象# scq=shengChengqi()# print(next(scq))# print(next(scq))# print(next(scq))# print(next(scq))
# laoliuAge=31/0# a=1# if a==1:#     raise Exception("這里是老劉拋出的異常")# else:#     print("沒有異常")

b="2"c=int(b)+2# try:#     c=b+2#     print(c)# except:#     print("程序有點小問題,請聯系管理員")

到此,關于“python異常的概述和利用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝应县| 缙云县| 郧西县| 阿克陶县| 社会| 大方县| 怀柔区| 涪陵区| 资讯| 广丰县| 扎囊县| 通道| 石柱| 额尔古纳市| 永靖县| 英超| 田阳县| 安阳县| 龙口市| 巴楚县| 新和县| 临武县| 台南县| 南江县| 莱阳市| 乌鲁木齐县| 新丰县| 伊通| 东台市| 建始县| 赤水市| 山西省| 铜陵市| 抚州市| 西畴县| 临汾市| 抚宁县| 招远市| 余江县| 甘南县| 鄂托克前旗|