乙個引子:
檔案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...