天天看點

python入到到實戰--第十章----異常

第十章  異常

Python使用被稱為異常 的特殊對象來管理程式執行期間發生的錯誤。 每當發生讓Python不知所措的錯誤時, 它都會建立一個異常對象。 如果你編寫了處理該異常的代碼, 程式将繼續運作;

如果你未對異常進行處理, 程式将停止, 并顯示一個traceback, 其中包含有關異常的報告。

異常是使用try-except 代碼塊處理的。

try:

  print(5/0)

except ZeroDivisionError:

  print("You can't divide by zero!")

如果try 代碼塊中的代碼運作起來沒有問題, Python将跳過except 代碼塊; 如果try 代碼塊中的代碼導緻了錯誤, 

Python将查找這樣的except 代碼塊, 并運作其中的代碼, 即其中指定的錯誤與引發的錯誤相同。

在這個示例中, try 代碼塊中的代碼引發了ZeroDivisionError 異常, 是以Python指出了該如何解決問題的except 代碼塊, 并運作其中的代碼。 這樣, 使用者看到的是一條友

好的錯誤消息, 而不是traceback。

使用異常,避免崩潰

分析文本

方法split() 以空格為分隔符将字元串分拆成多個部分, 并将這些部分都存儲到一個清單中

title = "Alice in Wonderland"

title.split() 

['Alice', 'in', 'Wonderland'] #結果

使用多個檔案

失敗時一聲不吭

并非每次捕獲到異常時都需要告訴使用者, 有時候你希望程式在發生異常時一聲不吭, 就像什麼都沒有發生一樣繼續運作。

要讓程式在失敗時一聲不吭, 可像通常那樣編寫try 代碼塊, 但在except 代碼塊中明确地告訴Python什麼都不要做。

Python有一個pass 語句, 可在代碼塊中使用它來讓Python什麼都不要做:

決定報告哪些錯誤

存儲資料

子產品json 讓你能夠将簡單的Python資料結構轉儲到檔案中, 并在程式再次運作時加載該檔案中的資料。 你還可以使用json 在Python程式之間分享資料。 更重要的是, JSON資料

格式并非Python專用的, 這讓你能夠将以JSON格式存儲的資料與使用其他程式設計語言的人分享。 這是一種輕便格式, 很有用, 也易于學習 

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

import json

numbers = [2, 3, 5, 7, 11, 13]

filename = 'numbers.json'

with open(filename, 'w') as f_obj:

  son.dump(numbers, f_obj)

導入子產品json,函數json.dump()将數字清單存儲到檔案numbers.json中

import json

filename = 'numbers.json'

with open(filename) as f_obj:

   numbers = json.load(f_obj)

print(numbers)

導入子產品json,函數json.load()加載存儲在numbers.json中資料

重構