溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python常見報(bào)錯(cuò)及解決方法是什么

發(fā)布時(shí)間:2023-04-14 09:32:30 來源:億速云 閱讀:107 作者:iii 欄目:編程語言

這篇文章主要介紹“Python常見報(bào)錯(cuò)及解決方法是什么”,在日常操作中,相信很多人在Python常見報(bào)錯(cuò)及解決方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Python常見報(bào)錯(cuò)及解決方法是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

一. 縮進(jìn)錯(cuò)誤(IndentationError)

在Python中,所有代碼都是通過正確的空格排列的。所以,無論是多出來空格,還是缺少空格,整個(gè)代碼都不會(huì)運(yùn)行,并且僅返回一個(gè)錯(cuò)誤函數(shù)。

Python代碼遵循PEP8空白規(guī)范,每一級(jí)縮進(jìn)使用4個(gè)空格。

錯(cuò)誤示例

a=1
b=2
if a<b:
print a

修正

a=1
b=2
if a<b:
 print a

二. Tab 和空格混用(TabError)

此類報(bào)錯(cuò)是由于同時(shí)使用制表符和空格進(jìn)行編碼導(dǎo)致的,tab鍵本質(zhì)上是制表符,而非縮進(jìn)符。由于不同文本編輯器中制表符代表的空格寬度不一,建議使用空格。

三. 語法錯(cuò)誤(SyntaxError)

語法錯(cuò)誤的原因包含下列三種:

1.無效語法(invalid syntax)

標(biāo)點(diǎn)符號(hào)遺漏,中英文符號(hào)混用,拼寫錯(cuò)誤,變量名或者函數(shù)名使用了關(guān)鍵字。

2.標(biāo)識(shí)符中有無效字符(invalid character in identifier)

代碼中出現(xiàn)了無法識(shí)別的字符,檢查一下是否有多余字符或者中文字符。

3.檢查到不完整的字符串(EOL while scanning string litera)

很多情況下是由于字符串兩邊的引號(hào)不統(tǒng)一。另外,搜索公眾號(hào)Linux就該這樣學(xué)后臺(tái)回復(fù)“git書籍”,獲取一份驚喜禮包。

錯(cuò)誤示例

print( 'hello', 'world')

錯(cuò)誤原因:逗號(hào)為中文逗號(hào)

報(bào)錯(cuò)信息:SyntaxError: invalid character inidentifier

result = (1024+(512*2)/128

錯(cuò)誤原因:圓括號(hào)沒有成對(duì)出現(xiàn)

報(bào)錯(cuò)信息:SyntaxError:unexpected EOF whileparsing

if name =="A"
print("hello")

錯(cuò)誤原因:忘記在if/elif/else/while/for/def/class等語句末尾添加冒號(hào)

報(bào)錯(cuò)信息:SyntaxError:invalid syntax

四. 變量名錯(cuò)誤(NameErro)

變量名錯(cuò)誤是最普通也是最常會(huì)遇到的內(nèi)建報(bào)錯(cuò)類型,經(jīng)常會(huì)出現(xiàn)在Python變量命名上,如果找不到變量就會(huì)引發(fā)NameError。關(guān)于變量名的規(guī)則,需要牢記以下幾條:

  • 變量名只能包含字母、數(shù)字和下劃線,不可用數(shù)字開頭;

  • 變量名不能包含空格,但可使用下劃線來分隔其中的單詞;

  • 不要將Python關(guān)鍵字和函數(shù)名用作變量名,如print;

  • 變量名應(yīng)既簡(jiǎn)短又具有描述性;

  • 慎用小寫字母l和大寫字母O,因?yàn)槿菀妆诲e(cuò)看成數(shù)字1和0。

出現(xiàn)變量名錯(cuò)誤,可以查看變量是否賦值,是否存在大小寫不統(tǒng)一或者變量名寫錯(cuò)了的情況,找到后加以修正。

錯(cuò)誤示例

message = "Hello!"
print(mesage)

錯(cuò)誤原因:變量名拼寫錯(cuò)誤,誤將massage拼寫為masge

報(bào)錯(cuò)信息:NameError: name 'mesage' is not defined

五. 索引錯(cuò)誤(IndexError)

索引是項(xiàng)目在數(shù)組或列表中的位置,當(dāng)我們嘗試從列表中訪問元素或從列表中不存在的索引中訪問元組時(shí),就會(huì)發(fā)生這種異常。

例如,有一個(gè)包含10個(gè)元素的列表,索引在0到9之間,如果試圖訪問索引10或11或更多的元素,就會(huì)產(chǎn)生IndexError。

錯(cuò)誤示例

a = [1,2,3]
print(a[3])

錯(cuò)誤原因:列表a中不存在第4個(gè)索引,列表的索引從0開始編號(hào)

報(bào)錯(cuò)信息:IndexError: string index out of range

六. 鍵錯(cuò)誤(KeyError)

在讀取字典中的key和value時(shí),如 果key不存在,就會(huì)觸發(fā)KeyError錯(cuò)誤。

錯(cuò)誤示例

d = {'a':1,'b':2}
print(d['f'])

錯(cuò)誤原因:鍵‘f’不存在

報(bào)錯(cuò)信息:KeyError: 'f'

七. 類型錯(cuò)誤(TypeError)

在程序中使用不正確或不受支持的對(duì)象類型時(shí),會(huì)引發(fā)該錯(cuò)誤。如果嘗試調(diào)用不可調(diào)用的對(duì)象或通過非迭代標(biāo)識(shí)符進(jìn)行迭代,也會(huì)引發(fā)此錯(cuò)誤。

錯(cuò)誤示例

age=18
print("我的年齡是"+age)

錯(cuò)誤原因:在使用“+”做拼接的時(shí)候,必須使用字符串,或者 把數(shù)字用str()函數(shù)轉(zhuǎn)化成字符串

報(bào)錯(cuò)信息:TypeError:can only concatenate str(not"int")to str

八. 屬性錯(cuò)誤(AttributeError)

特性引用和賦值失敗時(shí)會(huì)引發(fā)屬性錯(cuò)誤。

此類錯(cuò)誤的原因是嘗試訪問未知的對(duì)象屬性,換句話說就是找不到對(duì)應(yīng)對(duì)象的屬性??梢詸z查類中構(gòu)造函數(shù)__init__()是否寫正確,左右兩邊各兩條下劃線。

到此,關(guān)于“Python常見報(bào)錯(cuò)及解決方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI