Python處理異常

2021-07-31 14:34:07 字數 2366 閱讀 3644

乙個引子:

檔案scatch.txt的內容:

man:hi.

woman:hi.

man:how are you?

woman:i'm fine,thank you.and you?

man:i'm file,too.

woman:okay.hi:

執行以下語句後:

data = open('scatch.txt')

for each_line in data:

(role,line_spoken) = each_line.split(':')

print(role,end='')

print(' said:',end='')

print(line_spoken,end='')

提示錯誤:

修改如下:

for each_line in data:

(role,line_spoken) = each_line.split(':',1)

print(role,end='')

print(' said:',end='')

print(line_spoken,end='')

split()方法返回乙個字串列表,這會賦至乙個目標識別符號列表。這稱為多重賦值(multiple assignment)

可用help查到split的用法:

maxsplit是可選引數,表示分割乙個字串最多幾次。1表示最多分割兩次,分成兩部分。

另外:find()方法可以查詢字串中某字元的位置,找不到返回-1,找到就返回其索引位置。

if not each_line.find(':') == -1

其中「not」關鍵字,會將條件的值取反。

要處理大量意外的情況,最好的方法是增加額外的邏輯來進行處理。或者只需在各個錯誤確實發生時分別處理相應的錯誤。

處理異常

python通過trackback來告訴你執行時發生了某種意外情況。執行時錯誤叫做異常(exception)

python允許你在異常發生時捕獲異常,這就為你提供了乙個機會,從這個錯誤中恢復,最重要的是可以避免崩潰。

通過控制程式的執行時行為,你可以(盡可能地)確保你的python程式在面對大多數執行時錯誤時是健壯的。

放過錯誤:

對於上面這個程式最好能忽略不符合期望格式的資料航。如果split()方法呼叫導致乙個異常,可以報告這是乙個錯誤並使用pass繼續執行**。

不需要繼續做些什麼。

pass語句(可以把它認為是空語句或null語句)

特定指定異常:

try:

data = open('scatch.txt')

for each_line in data:

try:

(role,line_spoken) = each_line.split(':',1)

print(role,end='')

print(' said:',end='')

print(line_spoken,end='')

except valueerror:

pass

data.close()

except ioerror:

print("the file is missing")

資料不符合期望的格式時會出現valueerror。

資料無法正常訪問時會出現ioerror(例如,可能你的資料檔案已經被移走或者重新命名)

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...