<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python錯誤、異常和程序調試的方法介紹(附代碼)

        來源:懂視網 責編:小采 時間:2020-11-27 14:20:21
        文檔

        python錯誤、異常和程序調試的方法介紹(附代碼)

        python錯誤、異常和程序調試的方法介紹(附代碼):本篇文章給大家帶來的內容是關于python錯誤、異常和程序調試的方法介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。異常是Python程序在運行過程中引發的錯誤,如果程序中引發了未進行處理的異常,程序就會由于異常而終止運行
        推薦度:
        導讀python錯誤、異常和程序調試的方法介紹(附代碼):本篇文章給大家帶來的內容是關于python錯誤、異常和程序調試的方法介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。異常是Python程序在運行過程中引發的錯誤,如果程序中引發了未進行處理的異常,程序就會由于異常而終止運行

        本篇文章給大家帶來的內容是關于python錯誤、異常和程序調試的方法介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        異常是Python程序在運行過程中引發的錯誤,如果程序中引發了未進行處理的異常,程序就會由于異常而終止運行,只有為程序添加異常處理,才能使程序更“健壯”。

        Python對異常的處理,有它自己的語法形式,掌握如何在Python中處理異常和進行程序調試,主要內容有:

      1. 列表項目
      2. 列表項目
      3. 語法錯誤;
      4. 異常的概念;
      5. 用try語句捕獲異常;
      6. 常見異常的處理;
      7. 自定義異常;
      8. 使用pdb調試Python程序。
      9. 7.1 語法錯誤

        1.拼寫錯誤

        即Python語言中的關鍵字寫錯,變量名、函數名拼寫錯誤等。

        關鍵字拼寫錯誤時會提示SyntaxError(語法錯誤),而變量名、函數名拼寫錯誤會在運行時給出NameError的錯誤提示.

        2.腳本程序不符合Python的語法規范

        例如如少了括號,冒號等符號,以及表達式書寫錯誤等。

        3.縮進錯誤

        因為Python語法規定,以縮進作為程序的語法之一,這應該是Python語言獨特的一面。一般來說Python標準的縮進是以4個空格作為一個縮進。當然,你可以依據自己的習慣,使用Tab也可以。但同一個程序或項目中應該統一使用同一種縮進風格。

        7.2 異常的處理

        異常是Python程序在運行過程中引發的錯誤。如果程序中引發了未進行處理的異常,腳本就會由于異常而終止運行。只有在程序中捕獲這些異常,并進行相關的處理,才能使程序不會中斷運行。

        7.2.1 異常處理的基本語法

        Python中使用try語句來處理異常,和Python中其他語句一樣,try語句也要使用縮進結構,try語句也有一個可選的else語句塊。一般的try語句基本形式如下。

        try:
           <語句(塊)> #可能產生異常的語句(塊)
          except <異常名1>: #要處理的異常
           <語句(塊)> #異常處理語句
          except <異常名2>: #要處理的異常
           <語句(塊)> #異常處理語句
          else:
           <語句(塊)> #未觸發異常,則執行該語句(塊)
          finally:
           <語句(塊)> #始終執行該語,一般為了達到釋放資源等目的
          

        在實際應用中可以根據程序的需要而使用部分語句,常見的形式有:

        形式一:

        try:
           <語句(塊)>
          except <異常名1>:
           <語句(塊)>
          

        舉例:

        def testTry (index, flag=False):
           stulst = ["John","Jenny","Tom"]
           if flag: #flag為True時,捕獲異常
           try:
           astu = stulst [index]
           except IndexError:
           print("IndexError")
           return "Try Test Finished!"
           else: #flag為False時,不捕獲異常
           astu =stulst [index]
           return "No Try Test Finished!"
          print("Right params testing start...")
          print (testTry (1, True)) #不越界參數,捕獲異常(正常)
          print (testTry (1, False)) #不越界參數,不捕獲異常(正常)
          print("Error params testing start...")
          print (testTry (4, True)) #越界參數,捕獲異常(正常)
          print (testTry (4, False)) #越界參數,不捕獲異常(程序運行會中斷)
          

        形式二: 

         try:
           <語句(塊)>
           except < 異常名1>:
           <語句(塊)>
           finally:
           <語句(塊)>
         

        舉例:

        def testTryFinally (index):
           stulst = ["John","Jenny", "Tom"]
           af = open ("my.txt", 'wt+')
           try:
           af.write(stulst[index])
           except:
           pass
           finally:
           af.close() #無論是否產生越界異常,都關閉文件
           print("File already had been closed!")
          print('No IndexError...')
          testTryFinally (1) #無越界異常,正常關閉文件
          print('IndexError...')
          testTryFinally (4) #有越界異常,正常關閉文件
        7.2.2 Python主要的內置異常及其處理

        在Python中常見的異常都已經預定義好了,在交互式環境中,用dir(__builtins__)命令,就會顯示出所有的預定義異常。

        異常名描述
        AttributeError調用不存在的方法引發的異常
        EOFError遇到文件末尾引發的異常
        ImportError導入模塊出錯引發的異常
        IndexError列表越界引發的異常
        IOErrorI/O操作引發的異常,如打開文件出錯等
        KeyError使用字典中不存在的關鍵字引發的異常
        NameError使用不存在的變量名引發的異常
        TabError語句塊縮進不正確引發的異常
        ValueError搜索列表中不存在的值引發的異常
        ZeropisionError除數為零引發的異常

        except語句主要有以下幾種用法:

        except: #捕獲所有異常;
        except <異常名>: #捕獲指定異常;
        except (異常名1,異常名2): #捕獲異常名1或者異常名2;
        except <異常名> as <數據>: #捕獲指定異常及其附加的數據;
        except(異常名1,異常名2)as <數據>: #捕獲異常名1或者異常名2及異常的附加數據。

        7.3 手工拋出異常

        為了程序的需要,程序員還可以自定義新的異常類型,例如對用戶輸入文本的長度有要求,則可以使用raise引發異常,以確保文本輸入的長度符合要求。

        7.3.1 用raise手工拋出異常

        使用raise引發異常十分簡單,raise有以下幾種使用方式。

          raise 異常名
          raise 異常名,附加數據
          raise 類名
        使用raise可以拋出各種預定的異常,即使程序在運行時根本不會引發該異常。

        def testRaise2():
         for i in range (5):
         try:
         if i==2: #i==2拋出NameError異常
         raise NameError
         except NameError:
         print('Raise a NameError!')
         print (i)
         print('end...')
        
        testRaise2 ()

        運行結果:

        0
        1
        Raise a NameError!
        2
        3
        4
        end...

        7.3.2 assert語句

        assert語句的一般形式如下。

        assert <條件測試>, <異常附加數據> #其中異常附加數據是可選的

        assert語句是簡化的raise語句,它引發異常的前提是其后面的條件測試為假。

        舉例:

        def testAssert():
           for i in range (3):
           try:
           assert i<2
           except AssertionError:
           print('Raise a AssertionError!')
           print (i)
           print('end...')
        
          testAssert()

        運行結果:

        0
        1
        Raise a AssertionError!
        2
        end...

        assert語句一般用于在程序開發時測試代碼的有效性。比如某個變量的值必須在一定范圍內,而運行時得到的值不符合要求,則引發該異常,對開發者予以提示。所以一般在程序開發中,不去捕獲這個異常,而是讓它中斷程序。原因是程序中已經出現了問題,不應繼續運行。

        assert語句并不是總是運行的,只有Python內置的一個特殊變量__debug__為True時才運行。要關閉程序中的assert語句就使用python-O(短畫線,后接大寫字母O)來運行程序。

        7.3.3 自定義異常類

        在Python中定義異常類不用從基礎完全自己定義,只要通過繼承Exception類來創建自己的異常類。異常類的定義和其他類沒有區別,最簡單的自定義異常類甚至可以只繼承Exception類,類體為pass如:

        class MyError (Exception): #繼承Exception類
           pass

        如果需要異常類帶有一定的提示信息,也可以重載__init__和__str__這兩個方法。【相關推薦:python視頻教程】

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python錯誤、異常和程序調試的方法介紹(附代碼)

        python錯誤、異常和程序調試的方法介紹(附代碼):本篇文章給大家帶來的內容是關于python錯誤、異常和程序調試的方法介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。異常是Python程序在運行過程中引發的錯誤,如果程序中引發了未進行處理的異常,程序就會由于異常而終止運行
        推薦度:
        標簽: 錯誤 代碼 程序
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日本中文字幕免费高清视频| 高h视频在线免费观看| a视频在线观看免费| 亚洲无人区一区二区三区| 一级做a爰片久久毛片免费陪| 可以免费观看的一级毛片| 极品色天使在线婷婷天堂亚洲 | 亚洲国产小视频精品久久久三级| 亚洲AV无码国产精品永久一区| 国产无遮挡吃胸膜奶免费看| 老妇激情毛片免费| 在线观看国产区亚洲一区成人 | 免费无码又爽又刺激毛片| 亚洲欧美在线x视频| 亚洲国产精品视频| 国产精品小视频免费无限app | 国产精品V亚洲精品V日韩精品| 一级大黄美女免费播放| 日韩亚洲人成在线综合日本| 毛片无码免费无码播放| 亚洲av无码国产综合专区 | 日本免费一区尤物| 免费无码专区毛片高潮喷水| 亚洲人成人无码网www电影首页| 久久青草精品38国产免费| 亚洲国产成人久久99精品| 国产真人无遮挡作爱免费视频| 日韩毛片一区视频免费| 国产AV无码专区亚洲精品| 无码日韩精品一区二区免费| 亚洲AV综合色区无码一二三区| 美腿丝袜亚洲综合| 1000部拍拍拍18勿入免费视频软件| 亚洲爆乳无码精品AAA片蜜桃| 国产成人毛片亚洲精品| 91九色视频无限观看免费| 大桥未久亚洲无av码在线| 亚洲AV无码久久寂寞少妇| 青草草在线视频永久免费| 花蝴蝶免费视频在线观看高清版 | 国产免费AV片在线观看|