Python基礎教程:新手朋友在python中常見的錯誤資訊彙總
最近很多同學都在問很多錯誤是怎麼回事,其實他們都是Python中非常基礎的錯誤,并且錯誤也告訴你很清楚,隻需要針對錯誤去解決就好了。那麼我今天針對常見的錯誤進行一個總結,希望對大家有幫助。
一般一個錯誤分為錯誤類型:具體原因。其中錯誤類型基本不變,具體原因會順序萬變,我們拿出常見的給大家作為一個參考,注明:具體原因中引号内的資訊是為了友善舉例寫的,真實你出現的錯誤并不一定和我引号裡的内容一緻,恩甚至說應該是肯定不一樣的~
1、IndentationError: unindent does not match any outer indentation level
解釋:縮進錯誤,python不是通過{}包裹代碼,而是進行tab或者空格的方式對代碼進行縮進,如果
縮進前後沒有對齊,就會報這個錯誤
2、NameError:name 'test' is not defined
解釋:你沒有定義一個叫test的變量,就直接使用test去執行業務邏輯,就會報這個錯誤

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基礎教程。大家也要練習看錯誤資訊,根據錯誤資訊自己去解決問題,才是一個合格的程式員~