pythonas關鍵字
『壹』 python入門精華-異常處理及其中的finally關鍵字的理解(超詳細)
在python中會遇到兩種錯誤,一種,是==語法錯誤==,這種錯誤不能被解釋器容忍,必須更改為正確語法後程序才能運行;而另外一種,是在==程序運行過程中出現的錯誤==,諸如==NameError==,==TypeError==等此類錯誤,有錯誤名稱和行號以及報錯內容的錯誤,稱之為==異常==。
名詞解釋:
[]:方括弧內的內容不必一定出現
try:異常捕獲塊,有且僅有一個
except:異常處理塊,可以有多個,且每個可以同時處理多種異常;不必一定存在
else:在未捕獲到異常時,進入else;else可可選的,不必一定存在
finaly:不論try有沒有捕獲到異常都會進入的塊,這里很多同學沒有深刻體會到它的用途,只是單純認為,此關鍵字不是必須的,沒有那麼重要,這個是討論的一點,幫助各位童鞋理解加深印象。
as:為各種異常進行一個起別名額功能。
1、首先執行try中的代碼塊(error_statement),如果代碼執行過程中出現異常,python會立刻生成一個對應的異常對象,並且將該異常上報解釋器,由解釋器獲得異常的過程,稱之為==異常捕獲==。
2、如果==捕獲到異常==,會立刻進入異常處理流程(==此時在try中異常出現以後的代碼不會再運行==),即except關鍵字引導的塊,根據關鍵字後邊的ExceptionName來==自上而下由左及右==地逐個檢查是否有對應的異常名稱,如果有則進入對應的except模塊,執行==其中的do_Excepttion_statement代碼塊==;如果沒有檢測到匹配的異常名稱則==不會進入任何except塊==,代碼會繼續向下運行。
3、else流程:在try中未檢測到任何異常才會進入else,童鞋們可能會有疑問?是沒有檢測到異常,還是except沒有包含該異常?注意~~這是兩個概念,前者是沒有異常,後者是有異常但是沒有進行except處理。答案是,沒有檢測到任何異常(代碼完全OK)才會進入else。示例如下:
4、except流程:
此處主要強調在最上邊例子中的except[(ExceptionName1,ExceptionName2 ...) [as ...]]:的理解,『[ ]』上邊提到過,是代表可以沒有;那麼,童鞋寫了如下代碼,看看兩種代碼的結果是否相同呢?
首先,需要搞清楚,代碼二是有語法錯誤的,這個必須得改正,問題在於else不能和try搭配,只能和except;第二點,這個是重點,只寫except和什麼都不寫之間有沒有區別?答案是肯定的,什麼都不寫代表不進行處理,而只寫 except :』 相當於 ==『except Exception:』,這種寫法意思是說萬能異常處理,即Exception這種異常是所有異常的統稱,所以如上的代碼一是勢必會列印『name is error』這句話。
5、finally流程(重點) :童鞋們往往在有些時候比較難理解finally的存在的意義,但是對於這樣的流程,大家卻都知道無論try是否捕獲到異常,都會進入finally流程』;那麼接下來,我們細細品一品這個sao氣外漏的fianlly究竟為何如此之sao。
5.1 fianlly: 其實這玩意有個冠冕堂皇的功能:垃圾處理機制,說白了,如果你打開了一些物理文件,最終,是需要finally來進行關閉的(有同學就說了,那不寫在finally里邊不行嗎,也可以。)
5.2究竟如何理解?示例如下:
5.3 總結:
當 try 塊中代碼發生異常,導致程序崩潰時,在崩潰前 Python 解釋器也會執行 finally 塊中的代碼
『貳』 python中引入標准庫或自帶的內置庫可能需要使用哪些關鍵字
就是三個關鍵字,基本上格式是這個import xxxx from xxxx as xx 。意思就是導入那個內置庫或者引入標准庫從哪裡然後命名成一個簡單的名字,方便在後面代碼上引入時比較簡單。