国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python急速入門——(第十章:bug和調(diào)試)

這篇具有很好參考價值的文章主要介紹了Python急速入門——(第十章:bug和調(diào)試)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.常見bug類型


bug就是程序運行中出現(xiàn)的錯誤。

一般常見的bug類型有兩類,一類是語法錯誤,這類錯誤比較好解決,程序會直接報紅,然后我們在對應報紅的位置查找問題即可;第二類是思路錯誤,這類錯誤就不是很好解決了,因為程序不會直接報錯,只是運行的結(jié)果達不到我們的預期,這時候就需要一些調(diào)試技巧。但兩種錯誤的本質(zhì),都是對基礎知識掌握不牢固所導致的。


2.Python的異常處理機制


在一些情況下,即使程序出錯了,我們也不希望它直接終止,而是捕獲對應出錯位置的異常信息,給出提示,而不影響后續(xù)代碼的正常運行。這就是異常處理機制。先來看一段代碼:

a = int(input('請輸入第一個整數(shù):'))
b = int(input('請輸入第二個整數(shù):'))
result = a / b
print('結(jié)果為:', result)

當我們輸入10除0時,程序會直接報錯并終止:

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

當我們不小心手抖,輸進去字符串時:

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

上述兩種情況都會直接報錯,第一個異常是ZeroDivisionError,第二個異常是ValueError?,F(xiàn)在我們不想讓程序直接終止,使用異常捕獲機制:

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

try:
    a = int(input('請輸入第一個整數(shù):'))
    b = int(input('請輸入第二個整數(shù):'))
    result = a / b
    print('結(jié)果為:', result)
except ZeroDivisionError:           # 捕獲0不能做除數(shù)的異常
    print('對不起,除數(shù)不允許為0')
except ValueError:                  # 捕獲輸入字符的情況
    print('不能將字符串轉(zhuǎn)化為數(shù)字')
except BaseException as e:          # 捕獲所有異常
    print('出錯了', e)
print('程序結(jié)束')

大家可以嘗試一下執(zhí)行上述代碼,發(fā)現(xiàn)程序在遇到異常時不會直接終止了,而是先捕獲異常信息,接著向下走。except也是遵從順序結(jié)構(gòu),從上向下走的,先判斷是不是ZeroDivisionError異常,再看是不是ValueError異常。BaseException是捕獲所有異常,一般情況下僅寫這一個except語句足以。


2.1try-except-else結(jié)構(gòu)


try:
    a = int(input('請輸入第一個整數(shù)'))
    b = int(input('請輸入第二個整數(shù)'))
    result = a / b
except BaseException as e:
    print('出錯了', e)
else:
    print('計算結(jié)果為:', result)

如果出錯了,就走except語句;如果沒出錯,就走else語句。


2.2try-except-else-finally結(jié)構(gòu)


Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

try:
    a = int(input('請輸入第一個整數(shù)'))
    b = int(input('請輸入第二個整數(shù)'))
    result = a / b
except BaseException as e:
    print('出錯了',e)
else:
    print('計算結(jié)果為:',result)
finally:
    print('謝謝您的使用')

finally是無論程序是否出錯都一定會執(zhí)行的語句,常用來釋放try塊中申請的資源。


2.3Python中常見的異常類型


異常 描述
ZeroDivisionError 除(或取模)零(所有數(shù)據(jù)類型)
IndexError 序列中沒有此索引(index)
KeyError 映射中沒有這個鍵
NameError 未聲明/未初始化對象(沒有屬性)
SyntaxError Python語法錯誤
ValueError 傳入無效的參數(shù)
print(10/0) # ZeroDivisionError

lst=[11,22,33,44]
print(lst[4]) # IndexError  索引從0開始

dic={'name':'張三','age':20}
print(dic['gender']) # KeyError

print(num) # NameError

int a=20 # SyntaxError

a=int('hello') # ValueError

3.traceback模塊


我們在執(zhí)行print(10/0)這段代碼時,會報這樣的錯誤:
Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言
這其實也是traceback模塊的功能。

這一點我們還沒學,先照著敲。

import traceback		# 導入模塊

try:
    print('---------------------')
    print(1 / 0)
except:
    traceback.print_exc()

執(zhí)行這段代碼時,發(fā)現(xiàn)橫線的位置每回執(zhí)行時可能都會變,這一塊的知識將在后續(xù)線程的學習中學到。

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

我們?yōu)槭裁葱枰@個模塊?因為這些異常的細節(jié)有時候要被記錄,存儲到我們的日志文件中。我們會使用這個模塊來進行異常的存儲。


4.pycharm調(diào)試


Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言

Python急速入門——(第十章:bug和調(diào)試),Python,Cyber Security,python,bug,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-816059.html


到了這里,關(guān)于Python急速入門——(第十章:bug和調(diào)試)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 【規(guī)則引擎】Drools急速入門

    【規(guī)則引擎】Drools急速入門

    1.Drools規(guī)則引擎簡介 (1)什么是規(guī)則引擎 ? 全稱為業(yè)務規(guī)則管理系統(tǒng),英?名為BRMS(即 Business Rule Management System)。規(guī)則引擎的主要思想是將應用程序中的業(yè)務決策部分分離出來,并使用預定義的語義模塊編寫業(yè)務決策(業(yè)務規(guī)則),由用戶或開發(fā)者在需要時進行配置、管理

    2024年02月05日
    瀏覽(19)
  • Java規(guī)則引擎Drools急速入門

    Java規(guī)則引擎Drools急速入門

    1.Drools規(guī)則引擎簡介 (1)什么是規(guī)則引擎 ? 全稱為業(yè)務規(guī)則管理系統(tǒng),英?名為BRMS(即 Business Rule Management System)。規(guī)則引擎的主要思想是將應用程序中的業(yè)務決策部分分離出來,并使用預定義的語義模塊編寫業(yè)務決策(業(yè)務規(guī)則),由用戶或開發(fā)者在需要時進行配置、管理

    2024年02月04日
    瀏覽(28)
  • 第十章 Python第三方庫概覽

    10.1 Python第三方庫的獲取和安裝 Python第三方庫依照安裝方式靈活性和難易程度有三個方法: pip工具安裝、自定義安裝和文件安裝 。 10.1.1 pip工具安裝 最常用且最高效的Python第三方庫安裝方式是采用pip工具安裝。pip是Python官方提供并維護的在線第三方庫安裝工具。 使用pip安裝

    2024年02月07日
    瀏覽(23)
  • python筆記:第十章開箱即用的模塊

    任何python程序都可以作為模塊導入,并標明程序(模塊)的位置 會在該文件夾里面自動生成一個 __pycache__ 文件夾,包含處理后的文件。(可刪除,無影響) 在hello.py里面編寫函數(shù) 在t13.py里面調(diào)用模塊函數(shù) 運行結(jié)果 檢查模塊是作為程序運行還是被導入到另一個程序 如:在

    2024年02月17日
    瀏覽(30)
  • 第十章:C語言的調(diào)試

    第十章:C語言的調(diào)試

    ? ? ? ? 很多小伙伴剛開始聽到C語言的調(diào)試,這是個啥 ,表示很懷疑,敲代碼不就是直接就是干嘛 ,結(jié)果很多小白們,一運行錯誤多的數(shù)都數(shù)不過來 。就開始這改改,那刪刪,莫名奇妙就運行成功了 。到最后都不知道到底那錯了。有一種小朋友是否有多問號的感覺 。可想

    2024年02月06日
    瀏覽(19)
  • 使用 Python 和 Pygame 制作游戲:第九章到第十章

    使用 Python 和 Pygame 制作游戲:第九章到第十章

    原文: inventwithpython.com/pygame/chapter9.html 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 ????????? 推星星是 Sokoban 或“箱子推動者”的克隆。玩家位于一個房間,里面有幾顆星星。房間中的一些瓷磚精靈上有星星標記。玩家必須想辦法將星星推到有星星標記的瓷磚上。如果墻壁或其他星星

    2024年01月22日
    瀏覽(34)
  • 【Three.js】第十章 Debug UI 調(diào)試界面

    【Three.js】第十章 Debug UI 調(diào)試界面

    每個創(chuàng)意項目的一個重要方面是使調(diào)試變得容易并調(diào)整您的代碼。開發(fā)人員(您)和從事該項目的其他參與者(如設計師甚至客戶)必須能夠更改盡可能多的參數(shù)。 你必須考慮到這一點,以便他們找到完美的 顏色、速度、數(shù)量 等,以獲得 最佳體驗 。您甚至可能會得到看起

    2024年02月21日
    瀏覽(20)
  • (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第一、二節(jié):閾值分割和邊界分割

    (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第一、二節(jié):閾值分割和邊界分割

    圖像分割 :在對圖像的研究和應用中,人們往往僅對圖像中的某些目標感興趣,這些目標通常對應圖像中具有特定性質(zhì)的區(qū)域。圖像分割是指把一幅圖像分成不同的具有特定性質(zhì)區(qū)域的圖像處理技術(shù),將這些區(qū)域分離提取出來,以便進一步提取特征和理解 圖像分割方法多種

    2024年02月16日
    瀏覽(99)
  • 第一階段-第十章 Python基礎的綜合案例(數(shù)據(jù)可視化-折線圖可視化)

    第一階段-第十章 Python基礎的綜合案例(數(shù)據(jù)可視化-折線圖可視化)

    ??說明:該文章是學習 黑馬程序員 在B站上分享的視頻 黑馬程序員python教程,8天python從入門到精通 而記錄的筆記,筆記來源于本人。 若有侵權(quán),請聯(lián)系本人刪除 。筆記難免可能出現(xiàn)錯誤或筆誤,若讀者發(fā)現(xiàn)筆記有錯誤,歡迎在評論里批評指正。此筆記對應的doc文件的百

    2024年02月16日
    瀏覽(29)
  • (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第四,五節(jié):分水嶺分割和綜合案例

    (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第四,五節(jié):分水嶺分割和綜合案例

    分水嶺分割 :圖像處理中常用的一種分割方法,它基于圖像中灰度或顏色的變化來劃分不同的區(qū)域。分水嶺分割算法的原理是基于地理學上的分水嶺概念。將圖像看作一個 地貌圖 ,在圖像中低洼的部分被看作水池,而高處則表示山脈。通過在圖像中加入水并讓其逐漸充滿,

    2024年02月10日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包