python中異常報(bào)錯(cuò)處理方法匯總
首先異常是什么,異常白話解釋就是不正常,程序里面一般是指程序員輸入的格式不規(guī)范,或者需求的參數(shù)類型不對(duì)應(yīng),不全等等。
Python中異常是指程序中的例外,違例情況。異常機(jī)制是指程序出現(xiàn)錯(cuò)誤后,程序的處理方法。當(dāng)出現(xiàn)錯(cuò)誤后,程序的執(zhí)行流程發(fā)生改變,程序的控制權(quán)轉(zhuǎn)移到異常處理。
打個(gè)比方很多公司年終送蘋果筆記本,你程序話思維以為是(MAC)電腦筆記本,結(jié)果給你個(gè)蘋果+筆記本。。。首先類型不對(duì),數(shù)量也不對(duì)。
先來(lái)看幾個(gè)常見的報(bào)錯(cuò)如下:
NameError 命名錯(cuò)誤 原因是: name 'a' is not defined 命名a還未定義 簡(jiǎn)單來(lái)說(shuō)就是程序不知道a帶表誰(shuí) 如果a=1 那程序就懂了 a代表1
所以以后碰到這類代碼只用找到錯(cuò)誤未定義的a給它賦相應(yīng)的值即可解決了。
好了我們繼續(xù)看下一個(gè)如下:
IndexError 索引錯(cuò)誤(也有叫邊界錯(cuò)誤) 原因: list index out of range 列表的索引已經(jīng)超出其范圍導(dǎo)致
列表a只有2個(gè)參數(shù),下標(biāo)是0,1(不懂去看列表基礎(chǔ)),而我要打印下標(biāo)2位置的值這時(shí)候就超過(guò)它的標(biāo)準(zhǔn)不在范圍內(nèi)
打個(gè)比方坐公交車1米2以下兒童免費(fèi),結(jié)果來(lái)個(gè)1米5上來(lái)就不能免費(fèi)因?yàn)槟愠^(guò)規(guī)定高度
來(lái)我們繼續(xù)continue:
KeyError 鍵值錯(cuò)誤 一般出現(xiàn)在字典中原因是:字典a中沒有height這個(gè)鍵值,name已經(jīng)打印出來(lái)因?yàn)閍里面已經(jīng)存在
字典是由dict = { key : value }一一對(duì)應(yīng)組成,打個(gè)比方就理解了dict好比一家公司company由員工key類似標(biāo)識(shí)
value等于員工的屬性(崗位,工資,對(duì)應(yīng)個(gè)人信息等)這報(bào)錯(cuò)就等于去一個(gè)公司找某某某,結(jié)果人家公司說(shuō)沒這個(gè)人一樣。
繼續(xù)繼續(xù)continue:
ImportError 導(dǎo)入錯(cuò)誤 原因:No module named nothing 沒有模塊名叫nothing的方法
一般這錯(cuò)誤會(huì)發(fā)生在拼寫錯(cuò)誤或者大小寫,沒有安裝模塊方法,沒有正確引用位置(模塊更新版本可能會(huì)改方法名或新增文件夾)
這時(shí)候我推薦你去python2.x或者python3.x目錄下\Lib\site-packages文件里面找找看(第三方庫(kù)模塊都會(huì)在這幾種存放)
繼續(xù)繼續(xù)continue:
IOError 輸入輸出錯(cuò)誤 原因:No such file or directory : 'test' 沒有在目錄中找到叫test文件
這個(gè)容易理解,無(wú)中生有。程序說(shuō):你坑誰(shuí)???
繼續(xù)繼續(xù)continue:
AttributeError 成員屬性錯(cuò)誤 原因:一切皆對(duì)象 然而字典a對(duì)象內(nèi)沒有一個(gè)內(nèi)置函數(shù)也就是內(nèi)置方法叫sort排序,大家都知道字典是無(wú)序的,list列表才有這方法
當(dāng)你定義一個(gè)變量不知道能用什么內(nèi)置函數(shù)和方法時(shí)可以這樣用dir查看以下當(dāng)前可以用那些方法。
SyntaxError 語(yǔ)法錯(cuò)誤 :無(wú)效語(yǔ)法 a沒有定義所以沒辦法讓它轉(zhuǎn)換為整型 這也是常見錯(cuò)誤之一
來(lái)接著看下一個(gè):
TypeError 類型錯(cuò)誤:不知道的哈希類型 list列表 (后面為個(gè)人理解) 但是元組卻可以放進(jìn)去有點(diǎn)費(fèi)解,字典的key一般是單元素或唯一標(biāo)識(shí),
恰好元組不可變的序列也是唯一標(biāo)識(shí),所以元組可以放入key中。打比方就如你是世界上唯一的key,沒有和你完全一樣的存在。
以上是經(jīng)常會(huì)遇到的問(wèn)題報(bào)錯(cuò),大家學(xué)會(huì)了就可以自己思考解決方法了這樣也利于大家提高自己的水平。
相關(guān)文章
詳解TensorFlow訓(xùn)練網(wǎng)絡(luò)兩種方式
本文主要介紹了TensorFlow訓(xùn)練網(wǎng)絡(luò)兩種方式,一種是基于tensor(array),另外一種是迭代器,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Pytorch中torch.argmax()函數(shù)使用及說(shuō)明
這篇文章主要介紹了Pytorch中torch.argmax()函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01用Python實(shí)現(xiàn)流星雨效果的方法詳解
這篇文章主要為大家介紹了Python實(shí)現(xiàn)流星雨效果的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>2021-12-12手把手教你從PyCharm安裝到激活(最新激活碼),親測(cè)有效可激活至2089年
最近很多網(wǎng)友找小編反映PyCharm激活碼失效了,原來(lái)的已經(jīng)不能用了。浪費(fèi)了半天時(shí)間終于找到一個(gè)可以使用的了,支持最新JetBrains全系列產(chǎn)品(Pycharm 2020.2.x,Intellij idea 2020.2.x,WebStorm 2020.2.x)。,需要的朋友可以參考下2020-10-10