日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python3十大經(jīng)典錯誤及解決辦法

 接觸了很多Python愛好者,有初學(xué)者,亦有轉(zhuǎn)行人。不論大家學(xué)習(xí)Python的目的是什么,總之,學(xué)習(xí)Python前期寫出來的代碼不報(bào)錯就是極好的。下面,嚴(yán)小樣兒為大家羅列出Python3十大經(jīng)典錯誤及解決辦法,供大家學(xué)習(xí)。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東興,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

一、 SyntaxError 語法錯誤

(1)引號沒有成對出現(xiàn)

報(bào)錯信息:

 
 
 
  1. SyntaxError:EOL while scanning string literal 

錯誤示例:

 
 
 
  1. string = 'hello world 

解決方法:

字符串切記要放在引號中,單引號雙引號無所謂。當(dāng)一個(gè)字符串中包含單引號或雙引號時(shí),很容易出現(xiàn)引號不配對的情況。

(2)圓括號沒有成對出現(xiàn)

報(bào)錯信息:

 
 
 
  1. SyntaxError:unexpected EOF while parsing 

錯誤示例1:

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

錯誤示例2:

 
 
 
  1. print('hello world' 

解決方法:

使圓括號成對出現(xiàn)。在書寫復(fù)雜的表達(dá)式或調(diào)用函數(shù)時(shí)會經(jīng)常遇到這個(gè)問題。

(3)錯誤使用自操作運(yùn)算符++或--等

報(bào)錯信息:

 
 
 
  1. SyntaxError:invalid syntax 

錯誤示例:

 
 
 
  1. v = 64 
  2. v++ 

解決方法:

在Python語言中,沒有類似C語言的++或--等自操作運(yùn)算符。與之類似功能的用法是+=或-=運(yùn)算符。例如,使用下面的代碼進(jìn)行讓變量v進(jìn)行自增1的操作。

 
 
 
  1. v += 1 

(4)試圖使用等號(=)判斷兩個(gè)運(yùn)算量是否相等

報(bào)錯信息:

 
 
 
  1. SyntaxError:invalid syntax 

錯誤示例:

 
 
 
  1. if v=64:2 
  2. print('hello world') 

解決方法:

在Python語言中使用兩個(gè)等號(==)作為判斷兩個(gè)運(yùn)算量是否相等的關(guān)系運(yùn)算符,而等號(=)是賦值運(yùn)算符。

(5)錯誤使用Python語言關(guān)鍵字作為變量名

報(bào)錯信息:

 
 
 
  1. SyntaxError: can`t assign to keyword 

錯誤示例:

 
 
 
  1. False= 1 

解決方法:

不要使用Python語言關(guān)鍵字作為變量名、函數(shù)名或類名等。在Python Shell窗口中,使用help('keywords')指令可以查看Python語言的關(guān)鍵字列表。

(6)忘記在if/elif/else/while/for/def/class等語句末尾添加冒號(:)

報(bào)錯信息:

 
 
 
  1. SyntaxError:invalid syntax 

錯誤示例1:

 
 
 
  1. a = '12345' 
  2. for i  in a 
  3.     print(i) 

錯誤示例2:

 
 
 
  1. def sayhi() 
  2.     print('Hi') 

解決方法:

在if/elif/else/while/for/def/class等語句末尾添加冒號(:)即可。牢記語法規(guī)則,多多練習(xí)多多敲代碼。

(7)錯誤地使用了中文標(biāo)點(diǎn)符號

報(bào)錯信息:

 
 
 
  1. SyntaxError: invalid character in identifier 

錯誤示例1:

 
 
 
  1. print('hello','world') 
  2. # 錯誤原因:逗號是中文標(biāo)點(diǎn)符號 

錯誤示例2:

 
 
 
  1. for i in range(10): 
  2. # 錯誤原因:冒號是中文標(biāo)點(diǎn)符號 

解決方法:

除了字符串中可以有中文外,其它任何情況均使用英文狀態(tài)進(jìn)行編輯。

二、 IndentationError 縮進(jìn)錯誤報(bào)錯信息:

 
 
 
  1. IndentationError:unindent does not match any outer indentation level 
  2. IndentationError:expected an indented block 

錯誤示例:

 
 
 
  1. a = 2 
  2. while a < 0: 
  3.       print('hello') 
  4.     a -= 1 
  5. else: 
  6.     print('0.0') 

解決方法:

上述代碼中while語句體內(nèi)的代碼縮進(jìn)沒有對齊。正確使用縮進(jìn)排版代碼。當(dāng)代碼是從其它地方復(fù)制并粘貼過來的時(shí)候,這個(gè)錯誤較多見。

三、 NameError 名字錯誤

當(dāng)變量名、函數(shù)名或類名等書寫錯誤,或者函數(shù)在定義之前就被調(diào)用等情況下,就會導(dǎo)致名字錯誤。報(bào)錯信息:

 
 
 
  1. NameError: name 'pirnt' is not defined 
  2. NameError: name 'sayhi' is not defined 
  3. NameError: name 'pd' is not defined 

錯誤示例1:

 
 
 
  1. pirnt('hello world') 
  2. # 錯誤原因:print拼寫錯誤。 

錯誤示例2:

 
 
 
  1. sayhi() 
  2.  
  3. def sayhi(): 
  4.     pass 
  5. # 錯誤原因:在函數(shù)定義之前對函數(shù)進(jìn)行調(diào)用。 

錯誤示例3:

 
 
 
  1. pd.read_excel(r'file.xlsx') 
  2. # 錯誤原因:在調(diào)用pandas方法前并未導(dǎo)入pandas庫或者并未起別名為pd。 

解決方法:

正確書寫變量名、函數(shù)名或類名等,在使用變量前先進(jìn)行賦值,將函數(shù)的定義放在函數(shù)調(diào)用之前,在使用第三方庫前先進(jìn)行導(dǎo)入、調(diào)包等等。即保證某個(gè)名字(標(biāo)識符)先存在,才能被使用。

四、 TypeError 類型錯誤

(1)整數(shù)和字符串不能進(jìn)行連接操作

報(bào)錯信息:

 
 
 
  1. TypeError: Can`t convert 'int' object to str implicitly 
  2. TypeError: unsupported operand type(s) for + : 'float' and 'str' 

錯誤示例1:

 
 
 
  1. print('score:'+100) 

錯誤示例2:

 
 
 
  1. print(9.8 + 'seconds') 

解決方法:

在整數(shù)、浮點(diǎn)數(shù)或布爾值與字符串進(jìn)行連接操作之前,先使用str()函數(shù)將其轉(zhuǎn)換為字符串類型。

(2)調(diào)用函數(shù)時(shí)參數(shù)的個(gè)數(shù)不正確,或者未傳遞參數(shù)

報(bào)錯信息:

 
 
 
  1. TypeError: input expected at most 1 arguments,got 2 
  2. TypeError: say() missing 1 required positional argument:'words' 

錯誤示例1:

 
 
 
  1. input('輸入姓名','年齡') 
  2. # 錯誤原因:試圖給input()函數(shù)提供第2個(gè)參數(shù)。 

錯誤示例2:

 
 
 
  1. def say(words): 
  2.     print(words) 
  3.  
  4. say() 
  5. # 錯誤原因:調(diào)用函數(shù)時(shí)未傳遞參數(shù)。 

解決方法:

記住函數(shù)用法,了解函數(shù)的參數(shù)定義,使用正確的方法調(diào)用函數(shù)即可。

五、 KeyError 鍵錯誤

使用不存在的鍵名訪問字典中的元素,就會發(fā)生這個(gè)錯誤。報(bào)錯信息:

 
 
 
  1. KeyError: 'c' 

錯誤示例:

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

解決方法:

在訪問字典中的元素時(shí),先用in關(guān)鍵字檢測要訪問的鍵名是否存在,或者是使用字典和get()方法安全地訪問字典元素。

六、 IndexError 索引錯誤

當(dāng)訪問列表的索引超出列表范圍時(shí),就會出現(xiàn)索引錯誤。報(bào)錯信息:

 
 
 
  1. IndexError: list index out of range 

錯誤示例:

 
 
 
  1. a = [1,2,3] 
  2. print(a[3]) 
  3. # 錯誤原因:列表a中不存在第4個(gè)索引。列表的索引從0開始編號。 

解決方法:

通過len()函數(shù)獲取列表的長度,然后判斷要訪問的索引是否超出列表范圍。

七、 UNboundLocalError 未初始化本地變量錯誤

在函數(shù)中,如果對未聲明的全局變量進(jìn)行修改操作,將會遇到這個(gè)錯誤。報(bào)錯信息:

 
 
 
  1. UnboundLocalError: local variable 's' referenced before assignment 

錯誤示例:

 
 
 
  1. s = 1 
  2.  
  3. def test(): 
  4.     s += 1 
  5.     print(s) 
  6.  
  7. test() 
  8. # 錯誤原因:在函數(shù)內(nèi)對未聲明的全局變量s進(jìn)行了自增操作。 
  9. # Python將變量s視為一個(gè)本地的局部變量,但該變量未初始化。 

解決方法:

在函數(shù)內(nèi)使用全局變量時(shí),使用global關(guān)鍵字對其進(jìn)行聲明即可。

八、 AttributeError 屬性錯誤

報(bào)錯信息:

 
 
 
  1. AttributeError: 'tuple' object has no attribute 'append' 
  2. AttributeError: 'DataFrame' object has no attribute 'col' 

錯誤示例1:

 
 
 
  1. t = (1,2,3) 
  2. t.append(4) 
  3. # 錯誤原因:元祖不可變。 

錯誤示例2:

 
 
 
  1. df = pd.read_excel(r'data.xlsx') 
  2. df.col 
  3. # 錯誤原因:DataFrame沒有col屬性,應(yīng)該為columns。 

解決方法:

正確書寫類的屬性名,不要發(fā)生書寫錯誤。深刻理解元祖,列表的區(qū)別,可將元祖轉(zhuǎn)換為列表添加元素。

九、 ModuleNotFoundError 模塊不存在

報(bào)錯信息:

 
 
 
  1. ModuleNotFoundError: No module named 'pandas' 

錯誤示例1:

 
 
 
  1. import pandas as pd 
  2. # 沒有導(dǎo)入成功,報(bào)上面錯誤。 

解決方法:

這種報(bào)錯常見于兩種場景中,第一、未下載、安裝該模塊;第二、將調(diào)用的模塊路徑與被調(diào)用的模塊路徑不一致等。第一種情況直接下載安裝即可,在cmd中,pip install xxx;第二種情況電腦中可能存在多個(gè)版本的Python,建議保留一個(gè)常用的即可。

十、 FileNotFoundError 文件不存在

報(bào)錯信息:

 
 
 
  1. FileNotFoundError: File b'E:\test\test_data.csv' does not exist 

錯誤示例:

 
 
 
  1. pd.read_csv('E:\test\test_data.csv') 
  2. # 錯誤原因:路徑中包含'\t',系統(tǒng)錯誤地認(rèn)為是制表符。 

解決方法:

在確保該路徑下確實(shí)存在所寫文件后,在讀取文件路徑前面加'r',表示只讀,作為文件路徑讀取;或者使用雙斜杠'\ \'來進(jìn)行轉(zhuǎn)義,形如:'E:\ \test\ \test_data.csv'。偶爾也會發(fā)生文件名、路徑的確寫錯,犯一些低級錯誤。

結(jié)束語

報(bào)錯,并不可怕,那是一個(gè)學(xué)習(xí)的機(jī)會?,F(xiàn)在搜索引擎這么發(fā)達(dá),只要把錯誤信息放進(jìn)去,一搜就出來了各種解決之道。

當(dāng)然了,大家還可以找嚴(yán)小樣兒啊!嚴(yán)小樣兒特別樂意幫別人的代碼找錯,排錯,然后再告訴你正確之道——點(diǎn)“在看”,右下角↘‘在看’點(diǎn)一下。


當(dāng)前題目:Python3十大經(jīng)典錯誤及解決辦法
文章分享:http://www.dlmjj.cn/article/dpijdcg.html