日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】Python3十大经典错误及解决办法

發布時間:2025/3/8 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】Python3十大经典错误及解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

◆?◆?◆ ?◆?◆

接觸了很多Python愛好者,有初學者,亦有轉行人。不論大家學習Python的目的是什么,總之,學習Python前期寫出來的代碼不報錯就是極好的。下面,嚴小樣兒為大家羅列出Python3十大經典錯誤及解決辦法,供大家學習。

一、 SyntaxError 語法錯誤

(1)引號沒有成對出現

報錯信息:

1SyntaxError:EOL?while?scanning?string?literal

錯誤示例:

1string = 'hello world

解決方法:
字符串切記要放在引號中,單引號雙引號無所謂。當一個字符串中包含單引號或雙引號時,很容易出現引號不配對的情況。

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

報錯信息:

1SyntaxError:unexpected?EOF?while?parsing

錯誤示例1:

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

錯誤示例2:

1print('hello?world'

解決方法:
使圓括號成對出現。在書寫復雜的表達式或調用函數時會經常遇到這個問題。

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

報錯信息:

1SyntaxError:invalid?syntax

錯誤示例:

1v?=?64 2v++

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

1v?+=?1
(4)試圖使用等號(=)判斷兩個運算量是否相等

報錯信息:

1SyntaxError:invalid?syntax

錯誤示例:

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

解決方法:
在Python語言中使用兩個等號(==)作為判斷兩個運算量是否相等的關系運算符,而等號(=)是賦值運算符。

(6)錯誤使用Python語言關鍵字作為變量名

報錯信息:

1SyntaxError:?can`t?assign?to?keyword

錯誤示例:

1False=?1

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

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

報錯信息:

1SyntaxError:invalid?syntax

錯誤示例1:

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

錯誤示例2:

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

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

(8)錯誤地使用了中文標點符號

報錯信息:

1SyntaxError:?invalid?character?in?identifier

錯誤示例1:

1print('hello','world') 2#?錯誤原因:逗號是中文標點符號

錯誤示例2:

1for?i?in?range(10): 2#?錯誤原因:冒號是中文標點符號

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

二、 IndentationError 縮進錯誤

報錯信息:

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

錯誤示例:

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

解決方法:
上述代碼中while語句體內的代碼縮進沒有對齊。正確使用縮進排版代碼。當代碼是從其它地方復制并粘貼過來的時候,這個錯誤較多見。

三、 NameError 名字錯誤

當變量名、函數名或類名等書寫錯誤,或者函數在定義之前就被調用等情況下,就會導致名字錯誤。

報錯信息:

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

錯誤示例1:

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

錯誤示例2:

1sayhi() 2 3def?sayhi(): 4????pass 5#?錯誤原因:在函數定義之前對函數進行調用。

錯誤示例3:

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

解決方法:
正確書寫變量名、函數名或類名等,在使用變量前先進行賦值,將函數的定義放在函數調用之前,在使用第三方庫前先進行導入、調包等等。即保證某個名字(標識符)先存在,才能被使用。

四、 TypeError 類型錯誤

(1)整數和字符串不能進行連接操作

報錯信息:

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

錯誤示例1:

1print('score:'+100)

錯誤示例2:

1print(9.8?+?'seconds')

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

(2)調用函數時參數的個數不正確,或者未傳遞參數

報錯信息:

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

錯誤示例1:

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

錯誤示例2:

1def?say(words): 2????print(words) 3 4say() 5#?錯誤原因:調用函數時未傳遞參數。

解決方法:
記住函數用法,了解函數的參數定義,使用正確的方法調用函數即可。

五、 KeyError 鍵錯誤

使用不存在的鍵名訪問字典中的元素,就會發生這個錯誤。

報錯信息:

1KeyError:?'c'

錯誤示例:

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

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

六、 IndexError 索引錯誤

當訪問列表的索引超出列表范圍時,就會出現索引錯誤。

報錯信息:

1IndexError:?list?index?out?of?range

錯誤示例:

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

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

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

在函數中,如果對未聲明的全局變量進行修改操作,將會遇到這個錯誤。

報錯信息:

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

錯誤示例:

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

解決方法:
在函數內使用全局變量時,使用global關鍵字對其進行聲明即可。

八、 AttributeError 屬性錯誤

報錯信息:

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

錯誤示例1:

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

錯誤示例2:

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

解決方法:
正確書寫類的屬性名,不要發生書寫錯誤。深刻理解元祖,列表的區別,可將元祖轉換為列表添加元素。

九、 ModuleNotFoundError 模塊不存在

報錯信息:

1ModuleNotFoundError:?No?module?named?'pandas'

錯誤示例1:

1import?pandas?as?pd 2#?沒有導入成功,報上面錯誤。

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

十、 FileNotFoundError 文件不存在

報錯信息:

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

錯誤示例:

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

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

結束語

報錯,并不可怕,那是一個學習的機會。現在搜索引擎這么發達,只要把錯誤信息放進去,一搜就出來了各種解決之道。

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯AI基礎下載(pdf更新到25集)機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群請掃碼喜歡文章,點個在看

總結

以上是生活随笔為你收集整理的【Python基础】Python3十大经典错误及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。