本文章記錄觀看B站python教程學習筆記和實踐感悟,視頻鏈接:【花了2萬多買的Python教程全套,現在分享給大家,入門到精通(Python全棧開發教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb
上節課學習bug的由來和分類,python中的異常處理,raise關鍵字的使用,python中常見的異常類型,PyCharm的程序調試,本節課學習本章總結和章節選擇題,實戰一:輸入成績如果不正確手動拋出異常,實戰二:判斷是否構成三角形。
1.本章總結
?該題目選c,就是什么都沒有指定,則把所有的異常全都捕獲。
該題目選A,四個選項,第一個為語法錯誤,第二個是被0除的異常,第三個是屬性或方法名不存在,第四個是沒有定義的錯誤。
第四題選,indentationError表示的是縮進問題。
總結一下TypeError,ZeroDivisionError,NameError,SyntaxError,IndentationError四個單詞分別代表的錯誤為:
1.TypeError,就是類型錯誤,比如字符串類型和整數類型連接一起。
2.ZeroDivisionError,就是0不可以為除數出現的錯誤。
3.NameError就是沒有定義的變量出現時,會出現名字錯誤(不知道它是誰),比如
4.SyntaxError,就是當我們寫出不符合python語法的代碼的時候,在解析時會報錯,并且會顯示在出錯在哪一行,并用小箭頭指明最早探測到錯誤的位置。
5.IndentationError表示的是縮進問題。
2.實戰一
#捕獲異常對象的基本框架,先讓語法結構這樣就不會報錯
try:pass
except Exception as e:pass
完整代碼如下所示:
try:score=eval(input('請輸入分數: ')) #解釋一下為什么是eval,因為我們希望在第六行這個位置報錯,如果是int,就會在這一行就報錯,這樣報錯就變成了a不是整數無法轉成int類型if 0<=score<=100:print('分數為:',score)else:raise Exception('分數不正確')
except Exception as e:print(e)
3.實戰二
代碼如下:
try:a=int(input('請輸入第一條邊長:'))b=int(input('請輸入第二條邊長:'))c=int(input('請輸入第三條邊長:'))if a+b>c and a+c>b and b+c>a:print('三角形的邊長為:',a,b,c)#這里也可以是 print(f'三角形的邊長為:{a},{b},{c}')else:#注意,這里不能直接寫Exception(a,b,c,'不能構成三角形'),因為直接這么寫返回的是元組(1, 2, 3, '不能構成三角形')raise Exception(f'{a},{b},{c},不能構成三角形') #這里的f'是格式化字符串
except Exception as e:print(e)
這樣可以保證是在第九行拋出異常。結果如下:
本節完?