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

Python錯誤+異常+模塊總結(jié)

 更新時間:2022年05月07日 09:38:28   作者:? 碼農(nóng)君?  ?  
這篇文章主要介紹了Python錯誤+異常+模塊總結(jié),在編程時遇見錯誤信息在所難免,Python中會也有很多種錯誤信息,常見的兩種就是語法錯誤和邏輯錯誤,下文我們就來總結(jié)一下那些常見的異常,需要的小伙伴可以參考一下

前言:

本篇主要講兩方面,錯誤和異常以及模塊。在編程時遇見錯誤信息在所難免,Python中會也有很多種錯誤信息,常見的兩種就是語法錯誤和邏輯錯誤,邏輯錯誤的種類有很多,占據(jù)了異常中大部分位置,下面就開始介紹一下這兩個概念的相關(guān)知識。

錯誤和異常

語法錯誤

語法錯誤英文表示為SyntaxError,后面會跟著一些關(guān)于錯誤的解釋信息,方便你查找語句中的bug,如下:

In?[5]:?print('naitangmao)
??File?"<ipython-input-5-d5b793a8884b>",?line?1
????print('naitangmao)??????????????????^
SyntaxError:?EOL?while?scanning?string?literal

語法錯誤顧名思義就是你的代碼語句寫錯了,比如上面這個語句的錯誤就是少了一個引號。發(fā)生錯誤后,解釋器會給出文件的名字和錯誤行號,以及在錯誤行下面有一個"^",這個提示你代碼出錯的位置,一般會位于箭頭前面,這些提示會便于編寫者盡快找出錯誤。

異常

有的時候一行代碼在語法上可能沒有什么錯誤,但是執(zhí)行的時候解釋器也會報紅,這種錯誤信息可以稱為異常,和語法錯誤相比,異常的種類更多也更加常見。

舉兩個簡單的例子:

In?[6]:?print(1/0)
---------------------------------------------------------------------------
ZeroDivisionError?????????????????????????Traceback?(most?recent?call?last)
<ipython-input-6-2fc232d1511a>?in?<module>
---->?1?print(1/0)
ZeroDivisionError:?division?by?zero

都知道0是不能作為分母出現(xiàn)的,所以Python就會給出一個ZeroDivisionError,并提醒你這是一個零除錯誤。

In?[9]:?1+'1'
---------------------------------------------------------------------------
TypeError?????????????????????????????????Traceback?(most?recent?call?last)
<ipython-input-9-d3bd1e37a107>?in?<module>
---->?1?1+'1'
TypeError:?unsupported?operand?type(s)?for?+:?'int'?and?'str'

整形與字符串之間不存在加法運算,解釋器分析出后會給出一個TypeError,這是一個類型錯誤,并且在后面給出錯誤的解釋。

異常處理

對于Python解釋器而言,如果一段程序中某個部分出現(xiàn)了異常,那么其后面的代碼將不會被運行,但Python中有方法可以對異常進行處理,讓異常不報紅,進而幫助整個程序完成運行,這種行為稱作捕獲異常,以try ... except語句組合實現(xiàn)。

In?[11]:?a?=?1;b?=?'2'
In?[12]:?try:
????...:?????print(a+b)
????...:?except?TypeError:
????...:?????print('類型錯誤!')
類型錯誤!

捕獲異常實現(xiàn)的過程:

  • 1.執(zhí)行try和except關(guān)鍵字之間的部分
  • 2.如果沒有異常發(fā)生,except子句在try語句執(zhí)行完畢后就被忽略了。
  • 3.如果在 try 子句執(zhí)行過程中發(fā)生了異常,那么該子句其余的部分就會被忽略。如果異常匹配于except關(guān)鍵字后面指定的異常類型,就執(zhí)行對應(yīng)的except子句。然后繼續(xù)執(zhí)行try/except語句之后的代碼。
  • 4.如果發(fā)生了一個異常,在except子句中沒有與之匹配的分支,它就會傳遞到上一級try語句中。如果最終仍找不到對應(yīng)的處理語句,它就成為一個未處理異常,終止程序運行,顯示提示信息。

為了避免第4條情況產(chǎn)生,在except語句中可以使用所有異常的父類Exception,這樣就囊括了所有異??赡馨l(fā)生的狀況:

In?[15]:?try:
????...:?????print(a+b)
????...:?except?Exception?as?e:
????...:?????print(e)
unsupported?operand?type(s)?for?+:?'int'?and?'str'

拋出異常

利用raise語句可以主動拋出一個異常,但拋出的異常必須是要繼承于Exception的異常類或者異常示例。

In?[16]:?raise?NameError('naitangmao')
---------------------------------------------------------------------------
NameError?????????????????????????????????Traceback?(most?recent?call?last)
<ipython-input-16-b751158801b2>?in?<module>
---->?1?raise?NameError('naitangmao')
NameError:?naitangmao

除此上面介紹之外,用戶還可以根據(jù)自己的需求自己定義異常,不再過多介紹,建議掌握的部分是每種異常出現(xiàn)的原因以及異常處理的方法。

模塊

第二部分就是模塊,我們有時可能會在不同文件之間利用同一個函數(shù),笨一點的做法就是copy來copy去,Python提供了一個機制可以在將一個文件中的內(nèi)容導(dǎo)入另一個文件中使用,這樣的文件就可以稱為模塊,需要注意的是并不是任何一個文件都可以當做模塊,而必須是包含Python定義和聲明的文件。

舉一個簡單的小例子幫助理解上面這段話,首先可以創(chuàng)建一個odd_num.py文件,然后這個文件中只有一個函數(shù),功能是實現(xiàn)過濾掉一個范圍內(nèi)的偶數(shù):

In?[18]:?def?odd(n):
????...:?????result?=?[]
????...:?????for?i?in?range(n):
????...:?????????if?i?%?2?!=?0:
????...:?????????????result.append(i)
????...:?????return?result

然后我們可以在另一個文件中導(dǎo)入這個模塊,如果我們想使用這個函數(shù)的話,就可以通過模塊名.函數(shù)名的方法調(diào)用該函數(shù),如下:

In?[20]:?import?odd_num
In?[21]:?odd_num.odd(20)
Out[21]:?[1,?3,?5,?7,?9,?11,?13,?15,?17,?19]

如果你只想用一個模塊中的某個子模塊,那么在導(dǎo)入時就可以指明需要導(dǎo)入的部分,這樣子模塊就可以單獨使用,不必在以模塊名.函數(shù)名的形式:

In?[22]:?from?odd_num?import?odd
In?[23]:?odd(20)
Out[23]:?[1,?3,?5,?7,?9,?11,?13,?15,?17,?19]

如果你還想偷懶的話,可以利用'*'的形式導(dǎo)入,這種寫法是導(dǎo)入一個模塊中的所有子模塊:

In?[24]:?from?odd_num?import?*

這種方法往往是不被推薦的,因為會讓代碼的可讀性變差。

如果你有很多自定義的模塊,為了更加規(guī)范、易找,那么你就可以將這些模塊存入一個"包"中,需要注意的是,這個包中比如要有一個名為__init__.py的文件,這個文件可以為空但必須存在,然后導(dǎo)入包中模塊的方式就是包名.模塊名

Python本身也有自帶的模塊庫,有一部分模塊是內(nèi)置于解釋器之中,然后用戶可以直接訪問這類模塊的接口,很大程度上提高了效率,比如time、sys等等。如果你對于一個模塊比較陌生,你可以利用dir()函數(shù)搜索某個模塊的定義,返回的結(jié)果是一個列表,其中包括模塊內(nèi)的方法、可供調(diào)用的接口等等。

In?[24]:dir(time)
Out[24]:['_STRUCT_TM_ITEMS',?'__doc__',?'__loader__','__name__','__package__','__spec__','altzone','asctime','ctime','daylight',
'get_clock_info','gmtime','localtime','mktime','monotonic','monotonic_ns','perf_counter','perf_counter_ns','process_time',
'process_time_ns','sleep','strftime','strptime','struct_time','thread_time','thread_time_ns','time','time_ns','timezone','tzname']

綜上是對錯誤和異常、模塊兩方面常用知識的一些概括!

到此這篇關(guān)于Python錯誤+異常+模塊總結(jié)的文章就介紹到這了,更多相關(guān)Python異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python批量插入數(shù)據(jù)到mysql的3種方法

    python批量插入數(shù)據(jù)到mysql的3種方法

    這篇文章主要給大家介紹了關(guān)于python批量插入數(shù)據(jù)到mysql的3種方法,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)庫的需求,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • vscode 配置 python3開發(fā)環(huán)境的方法

    vscode 配置 python3開發(fā)環(huán)境的方法

    這篇文章主要介紹了vscode 配置 python3開發(fā)環(huán)境的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 使用Python實現(xiàn)企業(yè)微信的自動打卡功能

    使用Python實現(xiàn)企業(yè)微信的自動打卡功能

    下面就通過Python程序來實現(xiàn)自動打卡,原理很簡單,用Python設(shè)置定時任務(wù),然后通過adb操作手機,完成打卡功能,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • Python3.4解釋器用法簡單示例

    Python3.4解釋器用法簡單示例

    這篇文章主要介紹了Python3.4解釋器用法,結(jié)合簡單實例形式分析了Windows與Linux系統(tǒng)環(huán)境中Python3.4解釋器的簡單使用方法,需要的朋友可以參考下
    2019-03-03
  • 使用Python計算隱含波動率

    使用Python計算隱含波動率

    隱含波動率(Implied?Volatility)在金融領(lǐng)域是一個核心概念,用于描述市場對于未來資產(chǎn)價格波動的預(yù)期程度,本文將詳細介紹如何使用Python計算隱含波動率,需要的可以了解下
    2024-11-11
  • Python使用CMD模塊更優(yōu)雅的運行腳本

    Python使用CMD模塊更優(yōu)雅的運行腳本

    這篇文章主要介紹了Python使用CMD模塊更優(yōu)雅的運行腳本的方法,實例分析了Python中cmd模塊的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • python中字典和列表的相互嵌套問題詳解

    python中字典和列表的相互嵌套問題詳解

    這篇文章主要為大家詳細介紹了python中字典和列表相互嵌套的問題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • python 高階函數(shù)簡單介紹

    python 高階函數(shù)簡單介紹

    這篇文章主要介紹了python 高階函數(shù)的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例

    python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例

    今天小編就為大家分享一篇python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python?繪制3D圖案例分享

    python?繪制3D圖案例分享

    這篇文章主要介紹了python?繪制3D圖案例分享,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-07-07

最新評論

安多县| 丹凤县| 建昌县| 渝中区| 建德市| 大庆市| 阜新市| 鸡泽县| 麻阳| 康马县| 阳原县| 治多县| 柏乡县| 宾川县| 琼结县| 黄梅县| 阳原县| 丹寨县| 宁津县| 柳林县| 巴塘县| 海伦市| 泸水县| 大悟县| 阿荣旗| 荆门市| 阿勒泰市| 乌拉特后旗| 安达市| 秦安县| 宾阳县| 永安市| 屏东县| 义马市| 墨玉县| 孝感市| 清镇市| 石河子市| 宜都市| 宕昌县| 青浦区|