python 提示錯誤 Python異常提示

2021-10-11 05:13:22 字數 2085 閱讀 6126

一、在以前的**中已經看過異常。通常錯誤的**或輸入會引發異常。發生異常時,程式立即停止。

下面的**通過嘗試將7除以0來產生 zerodivisionerror 異常。

num1 = 7num2=0print(num1/num2)

顯示結果

zerodivisionerror: division by zero

不同的異常是由不同的原因引起的。

常見的異常:

importerror: 無法引入模組或包。

indexerror: 下標索引超出序列邊界;

nameerror: 使用乙個還未賦予物件的變數;

syntaxerror: **邏輯語法出錯,不能執行;

typeerror: 傳入的物件型別與要求不符;

valueerror: 傳入乙個不被期望的值,即使型別正確。

keyerror: 試圖訪問你字典裡不存在的鍵。

ioerror: 輸入輸出異常。

python還有其他一些內建的異常,比如 zerodivisionerror 和 oserror 。第三方庫也經常定義自己的異常。

二、異常處理

為了處理異常,並在發生異常時呼叫**,可以使用 try/except語句。

try 塊包含可能會引發異常的**。如果發生該異常,try 塊中的**將停止執​​行,並且 except 塊中的**將被執行。如果沒有錯誤發生,except 塊中的**不會執行。

try:

num1= 5num2=0print (num1 /num2)print("計算完成")exceptzerodivisionerror:print("發生錯誤")print("您嘗試進行除0操作")

顯示結果

發生錯誤

您嘗試進行除0操作

try 語句可以有多個不同的 except 塊來處理不同的異常。除了使用圓括號的塊外,還可以將多個異常放入乙個單獨的塊中,使 except 塊處理所有這些異常。(相當於給出一堆選擇,然後丟擲乙個對應的錯誤提示)。

try:

variable= 10

print(variable + "hello")print(variable / 2)exceptzerodivisionerror:print("divided by zero")except(valueerror, typeerror):print("error occurred")

嘗試一下

error occurred

沒有指定任何異常的 except 語句將捕獲所有錯誤。應該謹慎使用,因為他們可以捕捉到意想不到的錯誤並隱藏程式設計錯誤。

例如:try:

word= "spam"

print(word /0)except:print("發生錯誤")

嘗試一下

發生錯誤

三、為了確保某些**不管發生什麼錯誤都執行,可以使用 finally 語句。finally 語句放置在 try/except 語句的底部。 finally 語句中的**總是在 try 中的**執行之後執行,可能在 except **塊中執行。

try:print("hello")print(1 /0)exceptzerodivisionerror:print("divided by zero")finally:print("這段**無論如何都會執行")

結果:hello

divided by zero

這段**無論如何都會執行

四、引發異常,您可以使用 raise 語句引發異常。

print(1)raisevalueerrorprint(2)

結果:1valueerror

引發異常可以提供一些異常的描述。

例如:name = "123"

raise nameerror("invalid name!")

結果:nameerror: invalid name!

在 except塊下,raise 語句可以在沒有引數的情況下使用來重新引發發生的異常。

例如:try:

num= 5 /0except:print("an error occurred")raise結果:

an error occurred

zerodivisionerror: division by zero

python 提示錯誤 python錯誤筆記

1.print hello world syntaxerror missing parentheses in call to paint did you mean print hello world 在呼叫 paint 時缺少圓括號。上面的語法在python3中是錯誤的。在python3中,你需要將...

python語法錯誤提示 python錯誤提示

modulenotfounderror 找不到 模組 unboundlocalerror 引用 變數沒有定義 syntaxerror 語法錯誤 typeerror 型別錯誤 attributeerror 屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤 eofebuteerror input 讀取到eo...

Lua 錯誤提示

1 x 10 local i 1 while i x do local x i 2 print x i i 1 end提示錯誤 stdin 1 attempt to compare nil with number 這是怎麼回事呀?它的意思是你用數字跟nil值做了比較,自然得出了錯誤。另外,你貼的 我...