国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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中處理異常和進行程序調試,主要內容有:

  • 列表項目
  • 列表項目
  • 語法錯誤;
  • 異常的概念;
  • 用try語句捕獲異常;
  • 常見異常的處理;
  • 自定義異常;
  • 使用pdb調試Python程序。
  • 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
    主站蜘蛛池模板: 国内精品免费 | 久久久国产一区二区三区 | 亚洲国产成人久久综合一区 | 毛片网此 | 一级毛片免费观看 | 国产精品伦理久久久久 | 国产色在线 | 欧美日韩视频一区二区三区 | 中文字幕美日韩在线高清 | 日韩欧美网 | 天天操夜夜做 | 欧美性受一区二区三区 | 国产精品日韩精品 | 日本 黄 a | 久久国产免费一区 | 特黄日韩免费一区二区三区 | 欧美日韩国产一区二区三区播放 | 国产在线高清不卡免费播放 | 国产精品久久香蕉免费播放 | 国产三级毛片 | 日本我不卡| 91久久精品国产免费一区 | 欧美日韩亚洲一区二区 | 亚洲一区日韩一区欧美一区a | 国产精品久久久久久一区二区三区 | 国产在线精彩视频 | 欧美综合一区 | 国产区二区 | 亚洲va乱码一区二区三区 | 日韩在线视频免费观看 | 日韩中文字幕免费版 | 91精品国产品国语在线不卡 | 成人精品久久 | 亚洲韩精品欧美一区二区三区 | 91啪国自产在线高清观看 | 日韩阿v | 国产成人99久久亚洲综合精品 | www.亚洲一区 | 91在线资源| 国产一区二区三区免费在线视频 | 日韩 亚洲 欧美 中文 高清 |