Python常見報錯及解決方案,建議收藏!

WBOY
發布: 2023-04-13 19:04:01
轉載
3408 人瀏覽過

Python常見報錯及解決方案,建議收藏!

正文

 大家好,我是Python人工智慧技術

如果說寫程式碼最害怕什麼,那無疑是Bug。而對於新手來說,剛接觸編程,在享受寫代碼的成就感時,往往也會被各式各樣的Bug弄得暈頭轉向。

Python常見報錯及解決方案,建議收藏!

今天,我們就做了一期Python常見報錯的分享,拯救你的程式碼!

一. 縮排錯誤(IndentationError)

在Python中,所有程式碼都是透過正確的空格排列的。所以,無論是多出來空格,還是缺少空格,整個程式碼都不會運行,並且只回傳一個錯誤函數。

Python程式碼遵循PEP8空白規範,每一層縮排使用4個空格。

錯誤範例

a=1
b=2
if a<b:
print a
登入後複製

修正

a=1
b=2
if a<b:
 print a
登入後複製

二. Tab 和空格混用(TabError)

此類報錯是由於同時使用製表符和空格進行編碼導致的,tab鍵本質上是製表符,而非縮排符。由於不同文字編輯器中製表符代表的空格寬度不一,建議使用空格。

三. 文法錯誤(SyntaxError)

文法錯誤的原因包含下列三種:

   1.無效語法(invalid syntax)

   標點符號遺漏,中英文符號混用,拼字錯誤,變數名或函數名使用了關鍵字。

   2.標識符中有無效字元(invalid character in identifier)

   代碼中出現了無法辨識的字符,檢查一下是否有多餘字元或中文字元。

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

   很多情況下是由於字串兩邊的引號不統一。另外,搜尋公眾號Linux就該這樣學後台回覆“git書籍”,獲取一份驚喜禮包。

錯誤範例

print( 'hello', 'world')
登入後複製

錯誤原因:逗號為中文逗號

報錯訊息:SyntaxError: invalid character inidentifier

result = (1024+(512*2)/128
登入後複製

錯誤原因:圓括號沒有成對出現

報錯訊息:SyntaxError:unexpected EOF whileparsing

if name =="A"
print("hello")
登入後複製

錯誤原因:忘記在if/elif/else/while/for/def/class等語句結尾加上冒號

報錯訊息:SyntaxError:invalid syntax

四.變數名稱錯誤(NameErro)

變數名錯誤是最普通也是最常會遇到的內建錯誤類型,常常會出現在Python變數命名上,如果找不到變數就會引發NameError。關於變數名稱的規則,需要牢記以下幾條:

  • 變數名稱只能包含字母、數字和底線,不可用數字開頭;
  • 變數名稱不能包含空格,但可使用下劃線來分隔其中的單字;
  • 不要將Python關鍵字和函數名用作變數名,如print;
  • 變數名應既簡短又具有描述性;
  • 慎用小寫字母l和大寫字母O,因為容易被錯誤看成數字1和0。

出現變數名錯誤,可以查看變數是否賦值,是否存在大小寫不統一或變數名寫錯了的情況,找到後加以修正。

錯誤範例

message = "Hello!"
print(mesage)
登入後複製

錯誤原因:變數名稱拼字錯誤,誤將massage拼寫為masge

報錯訊息:NameError: name 'mesage' is not defined

五. 索引錯誤(IndexError)

索引是項目在數組或列表中的位置,當我們嘗試從列表中訪問元素或從列表中不存在的索引訪問元組時,就會發生這種異常。

例如,有一個包含10個元素的列表,索引在0到9之間,如果試圖存取索引10或11或更多的元素,就會產生IndexError。

錯誤範例

a = [1,2,3]
print(a[3])
登入後複製

錯誤原因:清單a中不存在第4個索引,清單的索引從0開始編號

錯誤訊息:IndexError: string index out of range

六.鍵錯誤(KeyError)

在讀取字典中的key和value時,如果key不存在,就會觸發KeyError錯誤。

錯誤範例

d = {'a':1,'b':2}
print(d['f'])
登入後複製

錯誤原因:鍵'f'不存在

錯誤訊息:KeyError: 'f'

七.類型錯誤(TypeError )

在程式中使用不正確或不受支援的物件類型時,會引發該錯誤。如果嘗試呼叫不可呼叫的物件或透過非迭代標識符進行迭代,也會引發此錯誤。

錯誤範例

age=18
print("我的年龄是"+age)
登入後複製

錯誤原因:在使用「 」做拼接的時候,必須使用字串,或是把數字用str()函數轉換成字串

錯誤訊息:TypeError:can only concatenate str(not"int")to str

八.屬性錯誤(AttributeError)

特性引用和賦值失敗時會引發屬性錯誤。

此類錯誤的原因是嘗試存取未知的物件屬性,換句話說就是找不到對應物件的屬性。可以檢查類別中建構函數__init__()是否寫正確,左右兩邊各兩條下劃線。

以上是Python常見報錯及解決方案,建議收藏!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!