第八章:異常
1、注:這裡的迴圈只在沒有異常引發的情況下才會退出,而且使用expect exception,列印更加有用的資訊
while true:
try:
x = input('enter the first number: ')
y = input('enter the second number: ')
value = x/y
print 'x/y is', value
except exception,e:
print 'invalid input:',e
print 'please try again'
else:
break
enter the first number: 12
enter the second number: 0
invalid input: integer division or modulo by zero
please try again
enter the first number: 12
enter the second number:'hello'
invalid input: unsupported operand type(s) for /: 'int' and 'str'
please try again
enter the first number: kd
invalid input: name 'kd' is not defined
please try again
enter the first number: 12
enter the second number:
invalid input: unexpected eof while parsing (, line 0)
please try again
enter the first number: 12
enter the second number: 3
x/y is 4
2、finally子句
它用來在可能的異常後進行清理。它和try子句聯合使用:
try:
x = 1/0
finally: #發生異常後進行清理
print 'cleaning up...'
del x
上面的**中,finally子句肯定會被執行,不管try子句中是否發生異常(在try子句之前初始化x的原因是如果不這樣做,由於zerodivisionerror的存在,x就永遠不會被賦值。這樣就會導致在finally子句中使用del刪除它的時候產生異常,而且這個異常是無法捕捉的)。
執行這段**,在程式崩潰之前,對於變數x的清理就完成了:
cleaning up...
traceback (most recent call last):
file "", line 2, in x = 1/0
zerodivisionerror: integer division or modulo by zero
另外,還可以在同乙個語句中組合使用try、except、finally和else(或其中3個)
try:
1/0except nameerror:
print 'unknow variable'
else:
print "that went well"
finally:
print "cleaning up."
cleaning up.
traceback (most recent call last):
file "", line 2, in 1/0
zerodivisionerror: integer division or modulo by zero
try:
12/9
except nameerror:
print 'unknow variable'
else:
print "that went well"
finally:
print "cleaning up." 1
that went well
cleaning up.
python 基礎學習筆記(1)
init 初始化 init 方法在類的乙個物件被建立時,馬上執行。這個方法可以用來對你的物件做一些你希望的 初始化 解釋 當乙個class,稍微複雜一點的時候,或者內部函式需要用得到的時候,往往都需要在,別人例項化你這個類之前,使用你這個類之前,做一些基本的,與自己的類有關的,初始化方面的工作。而這...
python學習筆記(基礎 1)
python為我們提供了非常完善的基礎 庫,覆蓋了網路 檔案 gui 資料庫 文字等大量內容,被形象地稱作 內建電池 batteries included 1.python是解釋性語言,你的 在執行時會一行一行地翻譯成cpu能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而c程式是執行前直接編譯成c...
Python學習筆記1 基礎
1.編碼 預設情況下,python 3 原始碼檔案以 utf 8 編碼,所有字串都是 unicode 字串。你也可以為原始檔指定不同的字元編碼。在 行 首行 後插入至少一行特殊的注釋行來定義原始檔的編碼 coding utf 8 或 coding cp 1252 2.識別符號 第乙個字元必須是字母表...