最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 錯誤和異常代碼詳解

 更新時間:2018年01月29日 12:24:36   作者:一去丶二三里  
這篇文章主要介紹了Python 錯誤和異常代碼詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

程序中的錯誤一般被稱為 Bug,無可否認,這幾乎總是程序員的錯。。。

程序員的一生,始終伴隨著一件事 - 調試(錯誤檢測、異常處理)。反反復復,最可怕的是:不僅自己的要改,別人的也要改。。。一萬頭草泥馬奔騰而過!

錯誤

程序錯誤,主要分為三類:

  • 語法錯誤
  • 邏輯錯誤
  • 運行時錯誤

語法錯誤

語法錯誤(也稱:解析錯誤):是指不遵循語言的語法結構引起的錯誤(程序無法正常編譯/運行)。
在編譯語言(例如:C++)中,語法錯誤只在編譯期出現(xiàn),編譯器要求所有的語法都正確,才能正常編譯。不過對于直譯語言(例如:Python)來說,語法錯誤可能在運行期才會出現(xiàn),而且不太容易區(qū)分語法錯誤及語義錯誤。

常見的 Python 語法錯誤有:

  • 遺漏了某些必要的符號(冒號、逗號或括號)
  • 關鍵字拼寫錯誤
  • 縮進不正確
  • 空語句塊(需要用 pass 語句)

例如,編寫這樣一個條件判斷語句:

>>> if n < 5
 File "<stdin>", line 1
  if n < 5
      ^
SyntaxError: invalid syntax

由于 if 語句中缺少一個冒號(:),不符合 Python 語法,因此程序無法正常運行。

邏輯錯誤

邏輯錯誤(也稱:語義錯誤):是指程序的執(zhí)行結果與預期不符(程序可以正常運行,不會 Crash)。
與語法錯誤不同的是,邏輯錯誤從語法上來說是正確的,但會產生意外的輸出或結果,并不一定會被立即發(fā)現(xiàn)。邏輯錯誤的唯一表現(xiàn)就是錯誤的運行結果。

常見的邏輯錯誤有:

  • 運算符優(yōu)先級考慮不周
  • 變量名使用不正確
  • 語句塊縮進層次不對
  • 在布爾表達式中出錯

例如,要計算兩個數(shù)的平均值:

>>> def average(a, b):
...   return a + b / 2 # 應為 (a + b) / 2
... 
>>> 

雖然程序能夠正常運行,但代碼中缺少括號,由于運算符優(yōu)先級(先乘除,后加減)的緣故,運算結果并不正確。

運行時錯誤

運行時錯誤:是指程序可以運行,但是在運行過程中遇到錯誤,導致意外退出。
當程序由于運行時錯誤而停止時,通常會說程序崩潰了。在 Python 中,這種運行時錯誤被稱為異常。

Python 中的一些運行時錯誤:

  • 使用未定義的標識符(NameError)
  • 除數(shù)為 0(ZeroDivisionError)
  • 打開的文件不存在(FileNotFoundError)
  • 導入的模塊沒被找到(ImportError)

例如,除數(shù)為 0:

>>> 5 / 0
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

每當出現(xiàn)這類運行時錯誤時,Python 就會創(chuàng)建一個異常對象。如果處理不當,會輸出一個跟蹤(Traceback)到那個錯誤,以及關于為什么會出現(xiàn)錯誤的一些細節(jié)。

內置異常的層次結構

Python 中有許多內置的異常,當出現(xiàn)相應的錯誤時,就會引發(fā)這些異常。

Built-in Exceptions 中,有一個內置異常的完整層次結構:

BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StopAsyncIteration
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
+-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning

注意: 當捕獲異?;蛘邲Q定應該繼承哪個異常類時,這個層次關系非常有用。

總結

以上就是本文關于Python 錯誤和異常代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Pandas中多重索引技巧的實現(xiàn)

    Pandas中多重索引技巧的實現(xiàn)

    Pandas中的多重索引功能強大,適用于處理多維數(shù)據(jù),本文就來介紹一下多重索引技巧,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • python3+PyQt5+Qt Designer實現(xiàn)堆疊窗口部件

    python3+PyQt5+Qt Designer實現(xiàn)堆疊窗口部件

    這篇文章主要為大家詳細介紹了python3+PyQt5+Qt Designer實現(xiàn)堆疊窗口部件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 解決python運行效率不高的問題

    解決python運行效率不高的問題

    在本篇文章中小編給大家分享了關于解決python運行效率不高的問題,有需要的朋友們可以跟著學習下。
    2020-07-07
  • Python實現(xiàn)根據(jù)Excel生成Model和數(shù)據(jù)導入腳本

    Python實現(xiàn)根據(jù)Excel生成Model和數(shù)據(jù)導入腳本

    最近遇到一個需求,有幾十個Excel,每個的字段都不一樣,然后都差不多是第一行是表頭,后面幾千上萬的數(shù)據(jù),需要把這些Excel中的數(shù)據(jù)全都加入某個已經上線的Django項目。所以我造了個自動生成?Model和導入腳本的輪子,希望對大家有所幫助
    2022-11-11
  • Python實現(xiàn)批量上傳本地maven庫到nexus

    Python實現(xiàn)批量上傳本地maven庫到nexus

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)批量上傳本地maven庫到nexus,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的小伙伴可以參考下
    2024-01-01
  • python wsgiref源碼解析

    python wsgiref源碼解析

    這篇文章主要介紹了python wsgiref源碼的相關資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python pexpect模塊及shell腳本except原理解析

    Python pexpect模塊及shell腳本except原理解析

    這篇文章主要介紹了Python pexpect模塊及shell腳本except原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Python實現(xiàn)圖像添加水印的方法

    Python實現(xiàn)圖像添加水印的方法

    在日常圖像處理中,為圖片添加水印是一項常見任務,本文主要介紹了Python實現(xiàn)圖像添加水印的方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • python調用java的Webservice示例

    python調用java的Webservice示例

    這篇文章主要介紹了python調用java的Webservice具體方法,包含java端和python實現(xiàn)代碼,需要的朋友可以參考下
    2014-03-03
  • Python面向對象編程(一)

    Python面向對象編程(一)

    本文詳細講解了Python的面向對象編程,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論

武宣县| 禄丰县| 克东县| 新沂市| 泸西县| 普安县| 滨州市| 随州市| 抚顺县| 潜江市| 修文县| 济阳县| 喀什市| 芷江| 横峰县| 儋州市| 吴堡县| 玉屏| 兖州市| 永济市| 嘉义市| 新蔡县| 内黄县| 秭归县| 辽宁省| 虹口区| 日土县| 封丘县| 安康市| 崇义县| 剑阁县| 乌鲁木齐县| 瑞金市| 攀枝花市| 东源县| 青神县| 明星| 左贡县| 沙坪坝区| 井冈山市| 遵义市|