python異常

10.3異常

Python使用被稱為異常的特殊對象來管理程序執(zhí)行期間發(fā)生的錯誤。每當發(fā)生讓Python不知所措的錯誤時,它都會創(chuàng)建一個異常對象。如果你編寫了處理該異常的代碼,程序?qū)⒗^續(xù)運行;如果你未對異常進行處理,程序?qū)⑼V?,并顯示一個traceback,其中包含有關(guān)異常的報告。

異常是使用try-except代碼塊處理的,可以執(zhí)行指定的操作,使用try-except代碼塊后即使出現(xiàn)了異常程序也將繼續(xù)運行。

10.3.1處理ZeroDivisionError異常

10.3.2使用try-except代碼塊

可編寫一個try-except代碼塊來處理可能引發(fā)的異常,

使用try-except代碼塊

如果try代碼塊中的代碼運行起來沒有問題,Python將跳過except代碼塊;

如果try代碼塊中的代碼導致了錯誤,Python將查找這樣的except代碼塊,并運行其中的代碼,即其中指定的錯誤與引發(fā)的錯誤相同。

10.3.3使用異常避免崩潰

如果程序能夠妥善地處理無效輸入,就能再提示用戶提供有效輸入,而不至于崩潰。

使用異常避免崩潰

10.3.4 else代碼塊

通過將可能引發(fā)錯誤的代碼放在try-except代碼塊中,可提高這個程序抵御錯誤的能力。

加入到try-except代碼塊中

else代碼塊

try-except-else代碼塊的工作原理:

1. Python嘗試執(zhí)行try代碼塊中的代碼;只有可能引發(fā)異常的代碼才需要放在try語句中

2.有時候,有一些僅在try代碼塊成功執(zhí)行時才需要運行的代碼

3.這些代碼應(yīng)放在else代碼塊中。except代碼塊告訴Python,如果它嘗試運行try代碼塊中的代碼時引發(fā)了指定的異常

10.3.5處理FileNotFoundError異常

找不到文件、文件名不正確、文件不存在等可使用try-except代碼塊以直觀的方式進行處理。

打開alice.txt

報錯FileNotFoundError

加入try-except代碼塊

打印變量message中的內(nèi)容

10.3.6分析文本

使用方法split(),它根據(jù)一個字符串創(chuàng)建一個單詞列表。

方法split()

它根據(jù)一個字符串創(chuàng)建一個單詞列表,字符串調(diào)用方法split()

方法split()以空格為分隔符將字符串分拆成多個部分,并將這些部分都存儲到一個列表中。結(jié)果是一個包含字符串中所有單詞的列表,雖然有些單詞可能包含標點。

計算文件大致包含多少個單詞

10.4存儲數(shù)據(jù)

程序把用戶提供的信息存儲在列表和字典等數(shù)據(jù)結(jié)構(gòu)中,模塊json來存儲數(shù)據(jù)

模塊json讓你能夠?qū)⒑唵蔚腜ython數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)儲到文件中,并在程序再次運行時加載該文件中的數(shù)據(jù)。

使用json在Python程序之間分享數(shù)據(jù)。

以JSON格式存儲的數(shù)據(jù)與使用其他編程語言的人分享。

注意JSONJavaScript Object Notation)格式最初是為JavaScript開發(fā)的,但隨后成了一種常見格式,被包括Python在內(nèi)的眾多語言采用。

10.4.1使用json.dump()json.load()

編寫一個存儲一組數(shù)字的簡短程序,再編寫一個將這些數(shù)字讀取到內(nèi)存中的程序。

第一個程序?qū)⑹褂?b>json.dump()來存儲這組數(shù)字,

第二個程序?qū)⑹褂?b>json.load()

函數(shù)json.dump()接受兩個實參要存儲的數(shù)據(jù)以及可用于存儲數(shù)據(jù)的文件對象

通常使用文件擴展名.json來指出文件存儲的數(shù)據(jù)為JSON格式。

json.dump()

numbers.json

json.load( )

數(shù)字列表

這是一種在程序之間共享數(shù)據(jù)的簡單方式。

10.4.2保存和讀取用戶生成的數(shù)據(jù)

對于用戶生成的數(shù)據(jù),使用json保存它們大有裨益,因為如果不以某種方式進行存儲,等程序停止運行時用戶的信息將丟失.

10.4.3重構(gòu)

重構(gòu):

代碼能夠正確地運行,但可做進一步的改進——將代碼劃分為一系列完成具體工作的函數(shù)。

重構(gòu)的好處:

重構(gòu)讓代碼更清晰、更易于理解、更容易擴展。

???eh?1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 異常的處理 異常就是程序運行錯誤或者邏輯混亂。需要給客戶友好的提示。 異常一般是無法完全避免,一般通過一定的手段,...
    不浪漫的浪漫_ea03閱讀 239評論 0 0
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,049評論 0 9
  • 一、簡介 Python最強大的結(jié)構(gòu)之一就是它的異常處理能力,所有的標準異常都使用類來實現(xiàn),都是基類Exceptio...
    隨風化作雨閱讀 3,145評論 0 1
  • 1月出生(農(nóng)民命) 2月出生(乞丐命) 3月出生(百萬富翁) 4月出生(小康生活) 5月出生(土財主) 6月出生(...
    貴州新目標閱讀 836評論 0 0
  • 7&END Tomoya決定和Ryota談一談。他感覺得到,Toru走后,Ryota和大家的關(guān)系就微妙起來,他在樂...
    keepharm閱讀 1,102評論 0 0

友情鏈接更多精彩內(nèi)容