欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中如何處理常見(jiàn)報(bào)錯(cuò)

 更新時(shí)間:2022年01月18日 11:25:00   作者:mez_Blog  
大家好,本篇文章主要講的是Python中如何處理常見(jiàn)報(bào)錯(cuò),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

1.首先是常見(jiàn)的語(yǔ)法錯(cuò)誤。
2.然后是基礎(chǔ)語(yǔ)法中的常見(jiàn)異常。
3.最后是操作文件過(guò)程中的常見(jiàn)異常,這部分也是重難點(diǎn)知識(shí)。

這是我們?cè)诮K端比較常見(jiàn)的報(bào)錯(cuò)信息:

 按照 Python 官方文檔的定義,我們?cè)诮K端見(jiàn)到的“錯(cuò)誤消息”至少可以被分為兩類:語(yǔ)法錯(cuò)誤(syntax errors)和異常(exceptions) 。

語(yǔ)法錯(cuò)誤(syntax errors)是初學(xué)者最容易犯的錯(cuò)誤,簡(jiǎn)單來(lái)說(shuō)就是代碼不符合 Python 的基本語(yǔ)法規(guī)范而導(dǎo)致程序出了問(wèn)題。 

當(dāng)你的代碼完全符合 Python 的語(yǔ)法規(guī)范后,就該嘗試運(yùn)行程序了。但在程序運(yùn)行過(guò)程中,還是有可能會(huì)發(fā)生問(wèn)題,我們把這類問(wèn)題稱為異常(exceptions)。

比如兩種常見(jiàn)的語(yǔ)法錯(cuò)誤 SyntaxError 和 IndentationError 以及它們產(chǎn)生的原因和相應(yīng)的解決辦法。

首先我們來(lái)看看 SyntaxError 。

第一種:SyntaxError: invalid syntax(無(wú)效語(yǔ)法),這是語(yǔ)法錯(cuò)誤中最常見(jiàn)的一種了,通常是由下面幾種情況引起的:

一、遺漏了標(biāo)點(diǎn)符號(hào)。
二、關(guān)鍵字拼寫(xiě)錯(cuò)誤或遺漏。
三、變量名或函數(shù)名使用了關(guān)鍵字。

第二種:SyntaxError: invalid character in identifier(標(biāo)識(shí)符中有無(wú)效字符),這種錯(cuò)誤一般是由于代碼里使用了大量中文符號(hào),比如中文括號(hào),中文逗號(hào),中文冒號(hào)和中文引號(hào)。這有可能是你在寫(xiě)代碼時(shí)頻繁地切換中英文輸入法所造成的。

第三種:SyntaxError: EOL while scanning string literal(檢查到不完整的字符串),這種情況通常是因?yàn)檫z漏了字符串兩邊的引號(hào),或者混用了引號(hào)(即字符串兩邊的引號(hào)不統(tǒng)一)。解決辦法也很簡(jiǎn)單,仔細(xì)檢查字符串兩頭的引號(hào)是否有遺漏,而且需要記住,單引號(hào)和單引號(hào)匹配,雙引號(hào)和雙引號(hào)匹配,三引號(hào)和三引號(hào)匹配。

圖片總結(jié)一下:

 第二個(gè)要介紹的常見(jiàn)語(yǔ)法錯(cuò)誤就是 IndentationError,即縮進(jìn)錯(cuò)誤。 在 Python 中,冒號(hào)下面的縮進(jìn)會(huì)幫助程序區(qū)分代碼之間的層次,這些不同的層次代表了代碼運(yùn)行的邏輯及先后順序。但如果在需要縮進(jìn)的語(yǔ)句下面沒(méi)有使用正確的縮進(jìn)層級(jí),甚至沒(méi)有使用縮進(jìn),程序就會(huì)報(bào)錯(cuò)。

比如兩種常見(jiàn)的縮進(jìn)錯(cuò)誤:

第一種:IndentationError: expected an indented block(需要縮進(jìn)的代碼塊),這種多半是由于某些需要縮進(jìn)的地方?jīng)]有縮進(jìn)導(dǎo)致的,修復(fù)這種縮進(jìn)錯(cuò)誤的方法也十分簡(jiǎn)單 —— 對(duì)癥下藥,理清代碼的運(yùn)行順序與邏輯,在應(yīng)該縮進(jìn)的地方(例如:if 條件判斷,for 循環(huán),while 循環(huán),def 函數(shù)定義,class 類的創(chuàng)建)加入縮進(jìn)即可。

第二種:IndentationError: unindent does not match any outer indentation level(縮進(jìn)內(nèi)容不匹配任何一個(gè)層級(jí)),這種主要是因?yàn)槟骋恍械目s進(jìn)沒(méi)有和其他位置對(duì)齊使得程序無(wú)法找到匹配的代碼塊導(dǎo)致的,解決辦法就需要我們理清代碼塊的層級(jí)并將縮進(jìn)對(duì)齊。

總結(jié)如下:

 接著我們來(lái)看看基礎(chǔ)語(yǔ)法中常見(jiàn)的異常,第一個(gè)要介紹的是基礎(chǔ)語(yǔ)法中常見(jiàn)的異常 TypeError,即類型錯(cuò)誤。 

區(qū)分異常和錯(cuò)誤的方法就需要我們?nèi)ビ^察終端的提示信息,一般情況下,異常的“錯(cuò)誤消息”會(huì)顯示Traceback (most recent call last),而語(yǔ)法錯(cuò)誤就不會(huì)顯示。 

下面列舉三種較為常見(jiàn)的類型錯(cuò)誤:

第一種:TypeError: unsupported operand type(s) for …(不支持的運(yùn)算)

第二種:TypeError: can only concatenate str (not "int") to str (只能用字符串拼接字符串)

第三種:TypeError: 'xxx' object is not iterable(對(duì)象不可被迭代)

具體的解決方法可以結(jié)合下圖:

一句話總結(jié):為了避免類型錯(cuò)誤,你需要確定自己使用的數(shù)據(jù)類型是什么(可以借助 type()),需要進(jìn)行的操作是什么,從而去確認(rèn)是否需要使用函數(shù)來(lái)進(jìn)行類型轉(zhuǎn)換。

第二種異常是IndexError ,這個(gè)異常,和列表取值有關(guān)。 出現(xiàn)頻率較高的索引錯(cuò)誤是 IndexError: list index out of range(索引超出了范圍),在列表中使用索引取值時(shí),一定要確保索引在正確的范圍區(qū)間內(nèi)。

最后,我們講了幾種操作文件過(guò)程中的常見(jiàn)異常。第一種是 ModuleNotFoundError 未找到模塊錯(cuò)誤,是一種有關(guān)模塊的異常,解決這個(gè)異常的方法十分簡(jiǎn)單,只要你在導(dǎo)入模塊時(shí)仔細(xì)檢查模塊的拼寫(xiě)是否正確即可。

第二種是 AttributeError 屬性錯(cuò)誤 ,為了避免這種異常,我們?cè)谑褂媚K中的方法時(shí),需要先檢查拼寫(xiě)是否正確,確認(rèn)拼寫(xiě)無(wú)誤后,再檢查模塊或庫(kù)中是否存在該方法或?qū)傩浴?/p>

第三種是 FileNotFoundError 文件找不到的錯(cuò)誤,為了避免這種異常,我們需要按照路徑找到對(duì)應(yīng)的文件或文件夾,檢查文件或文件夾名是否正確。

最后一種是 UnicodeDecodeError 即編碼解碼錯(cuò)誤,它也是 open() 函數(shù)的另一個(gè)參數(shù) encoding 會(huì)引發(fā)的異常,之前課程講的寫(xiě)法是 encoding = 'utf-8',這是因?yàn)?,大部分工作?chǎng)景的文件編碼格式都是 'utf-8'。但如果你需要使用別人分享的代碼時(shí),很有可能會(huì)因?yàn)槟銈冎g使用了不同的編碼格式而引發(fā)異常。

以后遇到這樣的異常,有兩種解決方法:

第一種,先利用 VSCode 等軟件去查看文件的編碼格式,然后再將文件的編碼格式修改為你在代碼中寫(xiě)的編碼格式即可。

第二種,還是先在 VSCode 里面查看文件的編碼格式,然后將代碼中的 encoding 參數(shù)改為該文件的編碼格式即可。

總結(jié)如下:

 而實(shí)際上我們?cè)趯?xiě)代碼的過(guò)程中可能遇到的錯(cuò)誤遠(yuǎn)不止這些,課程也無(wú)法一一全部講到,所以大家需要培養(yǎng)的是這種自己發(fā)現(xiàn)錯(cuò)誤和解決錯(cuò)誤的能力,這就需要我們不斷的嘗試以及學(xué)會(huì)到百度上搜索查閱資料來(lái)積累經(jīng)驗(yàn)了。

到此這篇關(guān)于Python中如何處理常見(jiàn)報(bào)錯(cuò)的文章就介紹到這了,更多相關(guān)Python處理報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論