python常見(jiàn)的報(bào)錯(cuò)提示
轉(zhuǎn)發(fā)自昵稱:aiaiduo?來(lái)源:https://www.cnblogs.com/aiaiduo/p/7966626.html
在運(yùn)行或編寫(xiě)一個(gè)程序時(shí)常會(huì)遇到錯(cuò)誤異常,這時(shí) python會(huì)給你一個(gè)錯(cuò)誤提示類名,告訴出現(xiàn)了什么樣的問(wèn)題( Python是面向?qū)ο笳Z(yǔ)言,所以程序拋出的異常也是類)。能很好的理解這些錯(cuò)誤提示類名所代表的意思,可以幫助你在最快的時(shí)間內(nèi)找到問(wèn)題所在,從而解決程序上的問(wèn)題是非常有幫助的。
搜集了一些 python最重要的內(nèi)建異常類名,并做了簡(jiǎn)單的介紹:
AttributeError:屬性錯(cuò)誤,特性引用和賦值失敗時(shí)會(huì)引發(fā)屬性錯(cuò)誤
NameError:試圖訪問(wèn)的變量名不存在
SyntaxError:語(yǔ)法錯(cuò)誤,代碼形式錯(cuò)誤
Exception:所有異常的基類,因?yàn)樗? python異常類都是基類 Exception的其中一員,異常都是從基類 Exception繼承的,并且都在 exceptions模塊中定義。
IOError:一般常見(jiàn)于打開(kāi)不存在文件時(shí)會(huì)引發(fā) IOError錯(cuò)誤,也可以解理為輸出輸入錯(cuò)誤
KeyError:使用了映射中不存在的關(guān)鍵字(鍵)時(shí)引發(fā)的關(guān)鍵字錯(cuò)誤
IndexError:索引錯(cuò)誤,使用的索引不存在,常索引超出序列范圍,什么是索引
TypeError:類型錯(cuò)誤,內(nèi)建操作或是函數(shù)應(yīng)于在了錯(cuò)誤類型的對(duì)象時(shí)會(huì)引發(fā)類型錯(cuò)誤
ZeroDivisonError:除數(shù)為 0,在用除法操作時(shí),第二個(gè)參數(shù)為 0時(shí)引發(fā)了該錯(cuò)誤
ValueError:值錯(cuò)誤,傳給對(duì)象的參數(shù)類型不正確,像是給 int()函數(shù)傳入了字符串?dāng)?shù)據(jù)類型的參數(shù)。
1)忘記在 if , elif , ? else , for , while , class ? , def 聲明末尾添加:(導(dǎo)致 ?“ SyntaxError ?: invalid syntax”)
該錯(cuò)誤將發(fā)生在類似如下代碼中:
if spam == 42
??? print('Hello!')
2)使用 =而不是 ==(導(dǎo)致“ SyntaxError:invalidsyntax ”)
=是賦值操作符而 ==是等于比較操作。該錯(cuò)誤發(fā)生在如下代碼中:
if spam = 42:
??? print('Hello!')
3)錯(cuò)誤的使用縮進(jìn)量。(導(dǎo)致“ IndentationError : unexpected indent”、“ IndentationError : unindent does not match any outer indetation level”以及“ IndentationError : expected an indented block”)
記住縮進(jìn)增加只用在以:結(jié)束的語(yǔ)句之后,而之后必須恢復(fù)到之前的縮進(jìn)格式。該錯(cuò)誤發(fā)生在如下代碼中:
print('Hello!')
print('Howdy!')
或者:
if spam == 42:
print('Hello!')
?print('Howdy!')
或者:
if spam == 42:
print('Hello!')
4)嘗試修改 string的值(導(dǎo)致“ TypeError:'str'objectdoesnotsupportitemassignment ”)
string是一種不可變的數(shù)據(jù)類型,該錯(cuò)誤發(fā)生在如下代碼中:
spam = 'I have apet cat.'
spam[13] = 'r'
print(spam)
而你實(shí)際想要這樣做:
spam = 'I have apet cat.'
spam = spam[:13] +'r' + spam[14:]
print(spam)
5)在字符串首尾忘記加引號(hào)(導(dǎo)致“ SyntaxError:EOLwhilescanningstringliteral ”)
該錯(cuò)誤發(fā)生在如下代碼中:
print(Hello!')
或者 :
print('Hello!)
或者 :
myName = 'Al'
print('My name is '+ myName + . How are you?')
6)變量或者函數(shù)名拼寫(xiě)錯(cuò)誤(導(dǎo)致“ NameError:name'fooba'isnotdefined ”)
該錯(cuò)誤發(fā)生在如下代碼中:
foobar = 'Al'
print('My name is '+ fooba)
或者 :
spam = ruond(4.2)
或者 :
spam = Round(4.2)
7)嘗試使用 Python關(guān)鍵字作為變量名(導(dǎo)致“ SyntaxError : invalid syntax”)
Python關(guān)鍵不能用作變量名,該錯(cuò)誤發(fā)生在如下代碼中:
class = 'algebra'
Python3的關(guān)鍵字有: and, as, assert, break, class, continue, def, del, elif,else, except, False, finally, for, from, global, if, import, in, is, lambda,None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
