日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础知识(第九天)

發布時間:2025/3/21 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础知识(第九天) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

125.異常的本質_調試核心理念

異常指程序運行過程中出現的非正常現象,例如用戶輸入錯誤、除數為零、需要處理的文件不存在、數組下標越界等。

所謂異常處理,就是指程序在出現問題時依然可以正確的執行剩余的程序,而不會因為異常而終止程序執行。

python 中,引進了很多用來描述和處理異常的類,稱為異常類。異常類定義中包含了該類異常的信息和對異常進行處理的方法。下面較為完整的展示了python 中內建異常類的繼承層次:

python 中一切都是對象,異常也采用對象的方式來處理。處理過程:

1.拋出異常:在執行一個方法時,如果發生異常,則這個方法生成代表該異常的一個對象,停止當前執行路徑,并把異常對象提交給解釋器。

2.捕獲異常:解釋器得到該異常后,尋找相應的代碼來處理該異常。

126.try_一個except基本結構

try:

? ? 被監控的可能引發異常的語句塊

except BaseException?[as e]:

? ? 異常處理語句塊

try 塊包含著可能引發異常的代碼,except 塊則用來捕捉和處理發生的異常。執行的時候,如果 try 塊中沒有引發異常,則跳過 except 塊繼續執行后續代碼;執行的時候,如果 try塊中發生了異常,則跳過 try 塊中的后續代碼,跳到相應的 except 塊中處理異常;異常處理完后,繼續執行后續代碼。

try:print("step1") a = 3/0 print("step2") except BaseException as e: print("step3") print(e)print("step4") step1 step3 division by zero step4

127.try_多個except結構

上面的結構可以捕獲所有的異常,工作中也很常見。但是,從經典理論考慮,一般建議盡量捕獲可能出現的多個異常(按照先子類后父類的順序),并且針對性的寫出異常處理代碼。為了避免遺漏可能出現的異常,可以在最后增加 BaseException。結構如下:

try:被監控的、可能引發異常的語句塊except Exception1:處理 Exception1 的語句塊except Exception2:處理 Exception2 的語句塊...except BaseException:處理可能遺漏的異常的語句塊 try:a = input("請輸入被除數:")b = input("請輸入除數:")c = float(a)/float(b)print(c)except ZeroDivisionError:print("異常:除數不能為 0") except TypeError:print("異常:除數和被除數都應該為數值類型") except NameError:print("異常:變量不存在") except BaseException as e:print(e)print(type(e))

128.try...except...else結構

try...except...else 結構增加了“else 塊”。如果 try 塊中沒有拋出異常,則執行 else 塊。如果try 塊中拋出異常,則執行 except 塊,不執行 else 塊。

try:a = input("請輸入被除數:")b = input("請輸入除數:")c = float(a)/float(b) except BaseException as e:print(e) else:print("除的結果是:",c)

129.try...except...finally結構

try...except...finally 結構中,finally 塊無論是否發生異常都會被執行;通常用來釋放 try 塊中申請的資源。

try:a = input("請輸入一個被除數:")b = input("請輸入一個除數:")c = float(a)/float(b) except BaseException as e:print(e) else:print(c) finally:print("我是 finally 中的語句,無論發生異常與否,都執行!")print("程序結束!") try:f = open("d:/a.txt",'r')content = f.readline()print(content) except BaseException as e:print(e) finally:print("關閉資源")try:f.close()except BaseException as e:print(e) print("程序關閉")

130.常見異常匯總和說明

return 語句和異常處理問題

由于 return 有兩種作用:結束方法運行、返回值。我們一般不把 return 放到異常處理結構中,而是放到方法最后。

常見異常的解決

?

異常名稱

說明

ArithmeticError

所有數值計算錯誤的基類

AssertionError

斷言語句失敗

AttributeError

對象沒有這個屬性

BaseException

所有異常的基類

DeprecationWarning

關于被棄用的特征的警告

EnvironmentError

操作系統錯誤的基類

EOFError

沒有內建輸入,到達EOF 標記

Exception

常規錯誤的基類

FloatingPointError

浮點計算錯誤

FutureWarning

關于構造將來語義會有改變的警告

GeneratorExit

生成器(generator)發生異常來通知退出

ImportError

導入模塊/對象失敗

IndentationError

縮進錯誤

IndexError

序列中沒有此索引(index)

IOError

輸入/輸出操作失敗

131.with上下文管理

finally 塊由于是否發生異常都會執行,通常我們放釋放資源的代碼。其實,我們可以通過 with 上下文管理,更方便的實現釋放資源的操作。

with 上下文管理的語法結構如下:with context_expr?[ as var]: 語句塊

with 上下文管理可以自動管理資源,在 with 代碼塊執行完畢后自動還原進入該代碼之前的現場或上下文。不論何種原因跳出 with 塊,不論是否有異常,總能保證資源正常釋放。極大的簡化了工作,在文件操作、網絡通信相關的場合非常常用。

with open("d:/bb.txt") as f: for line in f:print(line)

132.trackback模塊的使用_異常寫入日志文件

trackback模塊的使用

import traceback try:print("step1")num = 1/0 except:traceback.print_exc() Traceback (most recent call last):File "/Users/zhucan/PycharmProjects/pythonProject1/mypy01.py", line 4, in <module>num = 1/0 ZeroDivisionError: division by zero step1

異常寫入日志文件

? import traceback try:print("step1")num = 1/0 except:with open("d:/a.log","a") as f:traceback.print_exc(file=f)?

133.自定義異常類_raise拋出異常

自定義異常類

程序開發中,有時候我們也需要自己定義異常類。自定義異常類一般都是運行時異常,通常繼承 Exception 或其子類即可。命名一般以 Error、Exception 為后綴。

class AgeError(Exception):def __init__(self,errorInfo):Exception. __init__(self)self.errorInfo = errorInfodef __str__(self):return str(self.errorInfo)+",年齡錯誤!應該在 1-150 之間"if __name__ == "__main__":age = int(input("輸入一個年齡:"))if age<1 or age>150:raise AgeError(age)else:print("正常的年齡:",age)

134.pycharm的調試模式

進行調試的核心是設置斷點。程序執行到斷點時,暫時掛起,停止執行。就像看視頻按下停止一樣,我們可以詳細的觀看停止處的每一個細節。

斷點

程序運行到此處,暫時掛起,停止執行。我們可以詳細在此時觀察程序的運行情況,方便做出進一步的判斷。

1.設置斷點

(1)在行號后面單擊即可增加斷點

?

(2)在行號后面單擊即可增加斷點

進入調試視圖

我們通過如下三種方式都可以進入調試視圖:

1.單擊工具欄上的按鈕:

2.右鍵單擊編輯區,點擊:debug?‘模塊名’

3.快捷鍵:shift+F9

?進入調試視圖后,布局如下:

?

左側為“瀏覽幀”:調試器列出斷點處,當前線程正在運行的方法,每個方法對應一個“棧幀”。最上面的 ?是當前斷點所處的方法。

變量值觀察區:調試器列出了斷點處所在方法相關的變量值。我們可以通過它,查看變量的值的變化,也可以通過?,增加要觀察的變量。

我們通過上圖中的按鈕進行調試操作,它們的含義如下:

中文名稱

英文名稱

圖標和快捷鍵

說明

顯示當前所有斷點

show Execution

Point

Alt+F10

單步調試: 遇到函數跳過

step over

F8

若當前執行的是一個函數,則會把這個

函數當做整體一步執行完。不會進入這個函數內部

單步調試: 遇到函數進入

step into

F7?

若當前執行的是一個函數,則會進入這個函數內部

跳出函數

step out

Shift+F8

當單步執行到子函數內時,用 step out

就可以執行完子函數余下部分,并返回到上一層函數

執行的光標處

run to

cursor

Alt+F9

一直執行,到光標處停止,用在循環內

部時,點擊一次就執行一個循環

總結

以上是生活随笔為你收集整理的Python基础知识(第九天)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。