for i in
range(10
)print
(i)for i in
range(10
)^syntaxerror: invalid syntax
python的語法分析器完成,檢測到錯誤所在的檔案和行號,以向上箭頭標記錯誤位置,最後顯示錯誤型別
當程式檢測到乙個錯誤,直譯器就無法繼續執行下去,丟擲異常,終止程式
系統根據不同的錯誤,丟擲不同的異常
常見異常:
print(1
/0)zerodivisionerror: division by zero
a=
10print
(a)print
(b)nameerror: name 'b'
isnot defined
li =[1
,2,3
]print
(li[3]
)indexerror:
list index out of range
dic =
print
(dic[
'age'])
keyerror:
'age'
f =
open
('txt.txt'
)filenotfounderror:
[errno 2
] no such file
or directory:
'txt.txt'
a =
20 a =20^
indentationerror: unexpected indent
程式一旦發生錯誤,程式就無法繼續執行
try…except…
try
: try_starements
except
[exceptiontype[
as identifier]]:
except_statements
[else
: else_statements]
[finally
: finally_statements]
try
: x =
eval
(input
('請輸入被除數x:\t'))
y =eval
(input
('請輸入除數y:\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模組。'
)
請輸入被除數x:
4請輸入除數y:
0除數不可以為0
.離開try..
.except模組。
請輸入被除數x:
4請輸入除數y: b
請檢查變數是否賦值。
離開try..
.except模組。
請輸入被除數x:
4請輸入除數y:
2未捕捉到異常,x/y=
2.0離開try..
.except模組。
請輸入被除數x:
12請輸入除數y:4,
("unsupported operand type(s) for /: 'int' and 'tuple'",)
離開try..
.except模組。
除了系統丟擲的異常,我們可以用raise語句自己觸發異常。
格式:
raise
[exception[
,args[
,traceback]
]]
將自己觸發的異常異常處理:
try
:raise nameerror(
'sorry,error occurs'
)except nameerror:
print
('捕捉到異常。'
)
捕捉到異常。
assert condition
邏輯上相當於:
if
not condition:
raise assertionerror(
)
為斷言新增乙個異常引數
assert expression[
,args]
arguments
li =[1
,5]assert
len(li)
>=5,
'列表元素個數小於5'
traceback (most recent call last)
: file "/users/xujiaqi/pycharmprojects/untitled5/7yue.py"
, line 26,in
assert
len(li)
>=5,
'列表元素個數小於5'
assertionerror: 列表元素個數小於5
python錯誤和異常
1 語法錯誤 syntax errors 語法錯誤,也就是解析時錯誤。當我們寫出不符合python語法 時,在解析時會報syntaxerror,並且會顯示出錯的那一行,並用小箭頭知名指明最早探測到錯誤的位置。如 while ture file line 1 while ture syntaxerro...
Python錯誤和異常
語法錯誤是指python編譯器在編譯時出現的錯誤,語法分析器會指出出錯的一行並在最新出現問題的位置標記乙個小箭頭及錯誤提示 while true print hello world file haha.py line 1 while true syntaxerror invalid syntax 函...
Python 錯誤和異常
在編寫 的時候,先不管出於什麼原因,在執行階段,可能都看到過一些錯誤的資訊。這些資訊當中 至少 有兩種可區分的錯誤 語法錯誤和異常。語法錯誤也叫解析錯誤,這可能在學習編碼中最容易遇到的錯誤 while true print hello world file line 1 while true pri...