day 06上 錯誤和異常

2021-09-25 12:28:42 字數 2311 閱讀 5917

斜體樣式# 錯誤和異常

在敲**的過程中,難免出現錯誤,而錯誤的型別也是各種各樣的,當出錯了,python會返回錯誤的位置及型別

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

縮排typeerror

型別錯誤

程式一旦發生錯誤,程式就無法繼續執行。如果一定想要執行下去,就要做相關異常處理

try

: try_statements

except

[excpetiontype [

as identifier]

] except_statements

[else

: else_statements]

[finally

: finally_statements]

except子句

[as identifier]可以將捕捉到的異常指向乙個變數,然後,通過該變數獲得異常相關的資訊。

不帶任何異常型別使用except,將捕獲所有發生的異常。不推薦這麼使用,因為我們不能通過該程式識別出具體的異常資訊。

else子句

finally子句

demo:

try:.

..except exception1:..

.except exception2:..

.

try:.

..except

(exception1,exception2,..

.,):

as e:..

.

try:.

..except exception as e:..

.try:.

..except:.

..

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

raise

[exception[

,args[

,traceback]

]]

raise nameerror(

'sorry,error occurs'

)#traceback (most recent call last):

# file "f:/pycharm/summer/day_02.py", line 162, in

# raise nameerror('sorry,error occurs')

#nameerror: sorry,error occurs

assert condition
邏輯上相當於:

if

not conditon:

raise assertionerror(

)

為斷言新增乙個異常引數

assert expression [

, args]

li =[1

,2,3

]assert

len(li)

>=5,

'列表元素個數小於5'

#assertionerror: 列表元素個數小於5

資料探勘 day06

shoot射擊遊戲專案四 1.需求分析 a 將窗體的大小設定為常量 b 畫物件 想畫物件先獲取到,針對每乙個物件都能夠獲取到,獲取到的行為是共有的,設計到父類中 flyingobject每乙個物件得到的行為都是不一樣的,設計了乙個抽象方法 getlmage 在不同狀態下,得到不同的 狀態 設計到父類...

Day06 物件導向

方法回顧public static 方法型別 方法名 變數型別i 變數,變數型別ii 變數,區域性變數沒有變數不會有預設值。物件導向開發 類與物件public class student public void study 區域性變數與成員變數的區別 私有化private this的使用 this....

Day06 控制流程

pass 過 佔位 if10 10 print 123 while true pass break 終止當前迴圈 列印 1 10 遇到5就終止迴圈 i 1 while i 10 if i 5 break print i i 1 結果為 1 2 3 4 break 終止的是當前迴圈 continue ...