小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python3之十大經(jīng)典錯(cuò)誤及其解決辦法

 flyk0tcfb46p9f 2020-04-18

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

一、 SyntaxError 語(yǔ)法錯(cuò)誤

(1)引號(hào)沒(méi)有成對(duì)出現(xiàn)

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

1SyntaxError:EOL while scanning string literal

錯(cuò)誤示例:

1string = 'hello world

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

(2)圓括號(hào)沒(méi)有成對(duì)出現(xiàn)

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

1SyntaxError:unexpected EOF while parsing

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

1print('hello world'

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

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

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

1SyntaxError:invalid syntax

錯(cuò)誤示例:

1v = 642v++

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

1v += 1

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

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

1SyntaxError:invalid syntax

錯(cuò)誤示例:

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

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

(6)錯(cuò)誤使用Python語(yǔ)言關(guān)鍵字作為變量名

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

1SyntaxError: can`t assign to keyword

錯(cuò)誤示例:

1False= 1

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

(7)忘記在if/elif/else/while/for/def/class等語(yǔ)句末尾添加冒號(hào)(:)

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

1SyntaxError:invalid syntax

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

1def sayhi2 print('Hi')

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

(8)錯(cuò)誤地使用了中文標(biāo)點(diǎn)符號(hào)

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

1SyntaxError: invalid character in identifier

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

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

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

二、 IndentationError 縮進(jìn)錯(cuò)誤

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

1IndentationError:unindent does not match any outer indentation level2IndentationError:expected an indented block

錯(cuò)誤示例:

1a = 22while a < 0:3 print('hello')4 a -= 15else:6 print('0.0')

解決方法:上述代碼中while語(yǔ)句體內(nèi)的代碼縮進(jìn)沒(méi)有對(duì)齊。正確使用縮進(jìn)排版代碼。當(dāng)代碼是從其它地方復(fù)制并粘貼過(guò)來(lái)的時(shí)候,這個(gè)錯(cuò)誤較多見(jiàn)。

三、 NameError 名字錯(cuò)誤

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

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

1NameError: name 'pirnt' is not defined2NameError: name 'sayhi' is not defined3NameError: name 'pd' is not defined

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

1sayhi3def sayhi:4 pass5# 錯(cuò)誤原因:在函數(shù)定義之前對(duì)函數(shù)進(jìn)行調(diào)用。

錯(cuò)誤示例3:

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

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

四、 TypeError 類型錯(cuò)誤

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

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

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

錯(cuò)誤示例1:

1print('score:'+100)

錯(cuò)誤示例2:

1print(9.8 + 'seconds')

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

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

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

1TypeError: input expected at most 1 arguments,got 22TypeError: say missing 1 required positional argument:'words'

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

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

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

五、 KeyError 鍵錯(cuò)誤

使用不存在的鍵名訪問(wèn)字典中的元素,就會(huì)發(fā)生這個(gè)錯(cuò)誤。

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

1KeyError: 'c'

錯(cuò)誤示例:

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

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

六、 IndexError 索引錯(cuò)誤

當(dāng)訪問(wèn)列表的索引超出列表范圍時(shí),就會(huì)出現(xiàn)索引錯(cuò)誤。

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

1IndexError: list index out of range

錯(cuò)誤示例:

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

解決方法:通過(guò)len函數(shù)獲取列表的長(zhǎng)度,然后判斷要訪問(wèn)的索引是否超出列表范圍。

七、 UNboundLocalError 未初始化本地變量錯(cuò)誤

在函數(shù)中,如果對(duì)未聲明的全局變量進(jìn)行修改操作,將會(huì)遇到這個(gè)錯(cuò)誤。

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

1UnboundLocalError: local variable 's' referenced before assignment

錯(cuò)誤示例:

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

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

八、 AttributeError 屬性錯(cuò)誤

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

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

錯(cuò)誤示例1:

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

錯(cuò)誤示例2:

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

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

九、 ModuleNotFoundError 模塊不存在

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

1ModuleNotFoundError: No module named 'pandas'

錯(cuò)誤示例1:

1import pandas as pd2# 沒(méi)有導(dǎo)入成功,報(bào)上面錯(cuò)誤。

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

十、 FileNotFoundError 文件不存在

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

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

錯(cuò)誤示例:

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

解決方法:在確保該路徑下確實(shí)存在所寫文件后,在讀取文件路徑前面加'r',表示只讀,作為文件路徑讀?。换蛘呤褂秒p斜杠'\ \'來(lái)進(jìn)行轉(zhuǎn)義,形如:'E:\ \test\ \test_data.csv'。偶爾也會(huì)發(fā)生文件名、路徑的確寫錯(cuò),犯一些低級(jí)錯(cuò)誤。

結(jié)束語(yǔ)

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多