Python基礎 學習筆記1

2021-06-02 06:39:31 字數 2251 閱讀 8124

第八章:異常

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.識別符號 第乙個字元必須是字母表...