天天看點

Python基礎教程:新手朋友在python中常見的錯誤資訊彙總

Python基礎教程:新手朋友在python中常見的錯誤資訊彙總

最近很多同學都在問很多錯誤是怎麼回事,其實他們都是Python中非常基礎的錯誤,并且錯誤也告訴你很清楚,隻需要針對錯誤去解決就好了。那麼我今天針對常見的錯誤進行一個總結,希望對大家有幫助。

一般一個錯誤分為錯誤類型:具體原因。其中錯誤類型基本不變,具體原因會順序萬變,我們拿出常見的給大家作為一個參考,注明:具體原因中引号内的資訊是為了友善舉例寫的,真實你出現的錯誤并不一定和我引号裡的内容一緻,恩甚至說應該是肯定不一樣的~

1、IndentationError: unindent does not match any outer indentation level

解釋:縮進錯誤,python不是通過{}包裹代碼,而是進行tab或者空格的方式對代碼進行縮進,如果

縮進前後沒有對齊,就會報這個錯誤

2、NameError:name 'test' is not defined

解釋:你沒有定義一個叫test的變量,就直接使用test去執行業務邏輯,就會報這個錯誤

Python基礎教程:新手朋友在python中常見的錯誤資訊彙總

3、SyntaxError: invalid syntax

解釋:文法錯誤。唯一的不是在運作時發生的錯誤.

它代表 Python 代碼中有一個不正确的結構, 在它改正之前程式無法執行

還有比如 新手常見的 SyntaxError: EOL while scanning string literal,表示你的字元串沒有用引号封裝好

4、IndexError:list index out of range

解釋:索引超出序列範圍,比如li=['a', 'b', 'c'],索引為0,1,2,當你通路了li[3]就會報錯

5、KeyError:'test'

解釋:字典裡沒有test這個key,a = {'name': 'jack'} 當你調用a['age']就會抛這個錯誤

6、IOError:[Errno 2] no such file or directory:"/home/a.txt"

解釋:沒有找到/home/a.txt這個路徑或檔案,當你使用open或其他讀取系統路徑檔案的時候出現

7、AttributeError:'a' object object has no attribute 'b'

解釋:一個執行個體化的 a 對象裡 如果沒有這個b 而你調用了,比如 a.b 就會報這個錯誤

8、TypeError: 'NoneType' object is not callable

解釋:目前你調用的是一個None,而你企圖對這個None對象 進行一些 如 None() 等操作,同時

和 7 類似 如果一個None對象你調用了屬性 比如 None.b 也會報7的錯誤。

該錯誤通常發生在應該傳回一個可用對象并進行操作,而傳回了None你沒有驗證就去操作

再比如有一個函數 def a(name):... 的函數 如果你沒有傳參數或少傳了參數也會報Typeerror

比如 TypeError: a() missing 1 required positional argument: 'name'

再比如TypeError: Can’t convert ‘int’ object to str implicitly

說明你企圖讓一個整數和字元串相加

9、ValueError: invalid literal for int() with base 10: 'abc'

解釋:傳給的對象的參數類型不準确造成,比如有一個對象 a = 'abc' 你企圖對他 進行 int(a)

就會出現這個錯誤

10、FileNotFoundError: [Errno 2] No such file or directory: '/home/helloworld.py'

解釋:和6類似,當對檔案進行讀取的時候,也有可能抛出這個錯誤,标明沒有找到路徑或檔案

11、io.UnsupportedOperation: not writable

解釋:當你對一個檔案進行操作的時候,如果沒有相關的權限,就會報這個錯誤

12、ImportError: No module named 'requests'

解釋:你沒有導入這個requests包 但是在業務裡使用了這個包

再比如 我企圖從requests裡導入一個不存在的方法 from requests from aa

就會報 ImportError: cannot import name 'aa'

在這裡有一個槽點,比如我們在test.py 路徑下執行 python test.py

但是在test.py 中 有調用 目前路徑上一層其他路徑的包或者函數,也會報相關的importerror,

原則上是你執行目前py位置上的錯誤,在目前路徑下執行,代碼裡隻會以目前路徑為啟示路徑進行尋找。

是以最好是在更上層進行執行,或者在目前py下把需要導入的報的位址 加入到sys.path中。

以上就是常見的python的錯誤,我也會不斷的給大家更新Python基礎教程。大家也要練習看錯誤資訊,根據錯誤資訊自己去解決問題,才是一個合格的程式員~