Python 程式執行的錯誤和異常

2021-09-25 12:30:45 字數 2737 閱讀 6362

demo:

for i in

range(10

)print

(i)

out—>

for i in

range(10

)^syntaxerror: invalid syntax

python的語法分析器完成,檢測到錯誤所在檔案的行號。以向上箭頭標記錯誤位置,最後顯示錯誤型別。

當程式檢測到乙個錯誤,直譯器就無法繼續執行下去,丟擲異常,終止程式。

系統根據不不同的錯誤,丟擲不同的異常

常見異常:

異常描述

nameerror

嘗試訪問乙個沒有申明的變數

zerodivisionerror

除數為 0

syntaxerror

語法錯誤

indexerror

索引超出序列範圍

keyerror

請求乙個不存在的字典關鍵字

filenotfounderror

檔案未發現錯誤(比如你要讀的檔案不存在)

attributeerror

嘗試訪問未知的物件屬性

modulenotfounderror

模組未發現

indentationerror

縮排

print(1

/0)zerodivisionerror: division by zero

li=[

]print

(li[1]

)indexerror:

list index out of range

print

(a)nameerror: name 'a'

isnot defined

import a

modulenotfounderror: no module named 'a'

a=10

indentationerror: unexpected indent..

.

程式一旦發生錯誤,程式就無法繼續執行

為了是程式健壯,可做相關異常處理

try … except…

try

: try_statements

except

[exceptiontype[

as identifier]]:

except_statements

[else

: else_statements]

[finally

: finally_statements]

except子句

else子句

finally子句

try

: x =

eval

(input

('請輸入被除數x:\t'))

# 字元轉整形

y =eval

(input

('請輸入除數x:\t'))

z = x / y

except zerodivisionerror:

print

('除數不能為0'

)except nameerror:

print

('請檢查變數是否賦值'

)except exception as e:

# 輸出報錯型別

print

(e.args)

else

:print

('未捕捉到異常,x/y'

,z)finally

:print

('離開try..except..模組'

)

try…except…小結

處理多個異常的except語句

捕獲所有異常

除了系統丟擲的異常,我們可以用raise語句自己觸發異常

格式:

raise

[exception [

,args [

,traceback]]]

try:

raise zerodivisionerror(

'sorry error'

)except zerodivisionerror:

print

('aa'

)

aa

assert condition
邏輯上相當於:

if

not conditon:

raise assertionerror(

)

為斷言新增乙個異常引數

assert expression [

,args]

demo:

li=[1

,2]assert

len(li)

>=5,

'列表元素小於5個'

traceback (most recent call last)

: file "d:/pycharmprojects/1/day.py"

, line 321,in

assert

len(li)

>=5,

'列表元素小於5個'

assertionerror: 列表元素小於5個

執行python程式

1 在windows下執行python程式 1 從dos命令列執行python指令碼 用python直譯器來執行python指令碼,在windows下面python直譯器是python.exe,我的python檔案安裝在d python27,在這個目錄下可以看到python直譯器。完整的命令應該是 ...

執行python程式

1 在windows下執行python程式 1 從dos命令列執行python指令碼 用python直譯器來執行python指令碼,在windows下面python直譯器是python.exe,我的python檔案安裝在d python27,在這個目錄下可以看到python直譯器。完整的命令應該是 ...

執行程式,提示記憶體錯誤

問題描述 0x57a61b34 qtguid4.dll 處有未經處理的異常 0xc0000005 讀取位置0xc5afe8c1時發生訪問衝突。除錯,檢視變數的值會提示 cxx0030 錯誤 無法計算表示式的值 問題原因 這個程式建立了選單和動作,即menu和action 在初始化的時候,先呼叫的cr...