Python3報錯-Python入門到精通

前言

更多內容,請訪問個人 我的博客python


Python3報錯

咱們在寫程序的時候最喜聞樂見的就是程序打印出咱們想要的結果。編程

image

最怕的就是程序沒有按照咱們預先設想的樣子運行,完了還爆出一堆的錯誤信息。bash

image

本章要介紹的就是python中的報錯信息。報錯信息有不少種,這裏介紹兩種比較常見的報錯信息:ui

  • 語法錯誤
  • 邏輯異常

語法錯誤

咱們先來看看什麼是語法錯誤。還記得咱們以前講的for循環語句,必需要帶冒號,若是不帶冒號,就會報語法錯誤。spa

list = ['蘋果''西瓜''葡萄']
for lt in list
    print(lt)


for lt in list
                 ^
SyntaxError: invalid syntax
複製代碼

若是循環語句中沒有縮進,也會報語法錯誤。code

list = ['蘋果''西瓜''葡萄']
for lt in list:
print(lt)


    print(lt)
        ^
IndentationError: expected an indented block
複製代碼

報錯信息中寫的很清楚,按照提示修改就能夠了。blog

邏輯異常

在語法正確的狀況下,若是程序中出現邏輯錯誤,那麼也是會報錯的,這類錯誤就是邏輯異常。ip

好比計算1/0,咱們知道0是不能做爲除數的,這屬於邏輯錯誤,程序就會報異常。get

a = 1 / 0
print(a)

    a = 1 / 0
ZeroDivisionError: division by zero
複製代碼

再好比這個例子,程序就會報異常,說b這個玩意兒沒有定義,不知道是啥。input

a = 1 / b
print(a)

    a = 1 / b
NameError: name 'b' is not defined
複製代碼

異常處理

有的時候咱們懷疑某段代碼可能會報錯,或者說是擔憂會報錯,可是又不但願程序會所以斷掉。這時候咱們就能夠用try語句捕獲異常信息。

try:
    1/0
except:
    print('程序報錯了')

print('不管1/0對不對,我都不但願程序停止')
複製代碼

正如上面這個例子,雖然1/0是邏輯錯誤,可是程序並不會報錯,程序會依次輸出這兩句話,而後程序正常退出。

咱們也能夠根據報錯信息的不一樣作分類處理。

try:
    a/0
except ZeroDivisionError:
    print('0不能做爲被除數')
except NameError:
    print('變量沒有被定義')
複製代碼

正如上面這個例子,咱們能夠分別捕獲 0不能做爲被除數變量沒有被定義 這兩類異常信息。

固然,咱們也能夠加上else語句,當try裏的內容一點錯誤也沒有時,執行else裏的代碼。

try:
    a/0
except ZeroDivisionError:
    print('0不能做爲被除數')
except NameError:
    print('變量沒有被定義')
else:
    print('沒有任何報錯')
複製代碼

練習題

嘗試給下列代碼添加上try語句,並分別捕獲 ZeroDivisionErrorNameError 異常。

x = int(input("請輸入一個整數: "))

y = 1 / x
print(x + "的倒數是:" + y)
複製代碼

關注公衆號:潘高陪你學編程,回覆020,獲取習題答案。

image
相關文章
相關標籤/搜索