異常處理:
python在遇到問題時會自動引發異常,也可以用raise故意引發異常,異常種類必須是已有的
>>> raise ioerror('this is a test.')
traceback (most recent call last):
file
"", line 1, in
raise ioerror('
this is a test.')
oserror: this
is a test.
ioerror:打不開相應檔案
zerodivisionerror:除以0
syntaxerror:語法錯誤
捕獲異常:
try/expect
defget_age():
while
true:
try:
n = int(input('
how old are you?'))
return
n
except
valueerror:
print('
please enter an integer value.
')
>>>get_age()how old are you?a
please enter an integer value.
how old are you?-2
-2
捕獲多種異常:把多個異常種類括起來就好了
defconvert_to_int1(s,base):
try:
return
int(s,base)
except
(valueerror, typeerror):
return
'error
'
>>> convert_to_int1(100,5)'error
'>>> convert_to_int1(5,100)
'error
'>>> convert_to_int1('
100',5)
25
分別處理不同的異常:用多個except
defconvert_to_int2(s,base):
try:
return
int(s,base)
except
valueerror:
return
'value error
'except
typeerror:
return
'type error
'
>>> convert_to_int2(100,5)'type error
'>>> convert_to_int2('
100',1)
'value error
'
捕獲所有異常:except後面不加異常型別
defconvert_to_int3(s,base):
try:
return
int(s,base)
except
:
return
'error
'
>>> convert_to_int3('100',5)
25
清理操作:finally無論是否引發異常都會執行
definvert(x):
try:
return 1/x
except
:
return
'error
'finally
:
print('
invert(%s) done
' %x)
>>> invert(2)invert(2) done
0.5>>>invert(0)
invert(0) done
'error
'
with盡早執行清理操作
下面**將在for迴圈後立刻關閉檔案
defadd_linenum(fname):
num = 1with open(fname,'r
') as f:
for line in
f:
print('
%04d %s
' %(num,line), end =''
) num = num+1
>>> add_linenum('story.txt')
0001story
0002
0003mary had a litte lamb,
0004 and then she had some more.hahaha!!
Python入門系列(八)
python讀取檔案 首先,我們新建乙個叫做ex15 sample.txt的txt檔案 檔案內容如下 i want to open this file and read it在使用ar 函式之前,我們先嘗試著讀取一下這個檔案試試,如下 txt open ex15 sample.txt txt.rea...
Linux入門學習(八)
服務狀態 systemctl status服務名稱 loaded 系統服務已經初始化完成,載入過配置 active running 正有乙個或多個程式正在系統中執行,vsftpd 就是這種模式 atcive exited 僅執行一次就正常結束的服務,目前並沒有任何程式在系統中執行 atcive wa...
八 Python入門 異常處理
異常是乙個事件,該事件會在程式執行過程中發生,一般情況下,在python中無法處理程式時就會發生異常,當python指令碼發生異常時,我們需要捕獲並處理異常,否則程式就會終止執行 try 可能會出錯的語句 except exception as e 異常處理 常見的錯誤和異常 可能會報錯或出現異常的...