其他錯誤
AssertError
assert
語句幾乎存在於每種程式語言中。當你這樣做時:
assert condition
要麼:
assert condition, message
它相當於:
if __debug__:
if not condition: raise AssertionError(message)
斷言可以包含可選訊息,你可以在完成除錯後禁用它們。
注意 :內建變數 debug 在正常情況下為 True,在請求優化時為 False(命令列選項 -O)。除錯的分配是非法的。直譯器啟動時確定內建變數的值。
一個 KeyboardInterrupt
使用者按下中斷鍵時出錯,通常為 Ctrl + C 或 del。
ZeroDivisionError
你試圖計算未定義的 1/0
。請參閱此示例以查詢數字的除數:
Python 2.x <= 2.7
div = float(raw_input("Divisors of: "))
for x in xrange(div+1): #includes the number itself and zero
if div/x == div//x:
print x, "is a divisor of", div
Python 3.x >= 3.0
div = int(input("Divisors of: "))
for x in range(div+1): #includes the number itself and zero
if div/x == div//x:
print(x, "is a divisor of", div)
它提升了 ZeroDivisionError
,因為 for
迴圈將該值賦給 x
。相反它應該是:
Python 2.x <= 2.7
div = float(raw_input("Divisors of: "))
for x in xrange(1,div+1): #includes the number itself but not zero
if div/x == div//x:
print x, "is a divisor of", div
Python 3.x >= 3.0
div = int(input("Divisors of: "))
for x in range(1,div+1): #includes the number itself but not zero
if div/x == div//x:
print(x, "is a divisor of", div)