一、常見的錯誤型別
1.syntaxerror:python 直譯器語法錯誤
>>> if
syntaxerror: invalid syntax
syntaxerror 異常是唯一不是在執行時發生的異常. 它代表 python **中有乙個不正確的結構, 在它改正之前程式無法執行. 這些錯誤一般都是在編譯時發生, python 直譯器無法把你的指令碼轉化為 python 位元組**.
2.nameerror:嘗試訪問乙個未宣告的變數
>>> py
traceback (most recent call last):
file "", line 1, in
pynameerror: name 'py' is not defined
nameerror?表示我們訪問了乙個沒有初始化的變數.
3.zerodivisionerror:除數為零
>>> 1/0 traceback (most recent call last):
file "", line 1, in
1/0zerodivisionerror: division by zero
4.indexerror:請求的索引超出序列範圍
>>> list=['python']
>>> list[1]
traceback (most recent call last):
file "", line 1, in
list[1]
indexerror: list index out of range
5.keyerror:請求乙個不存在的字典關鍵字
>>> dict =
>>> print(dict['py'])
traceback (most recent call last):
file "", line 1, in
print(dict['py'])
keyerror: 'py'
對映物件, 例如字典, 是依靠關鍵字(keys)訪問資料值的. 如果使用錯誤的或是不存在的鍵請求字典就會引發乙個 keyerror異常.
6.ioerror:輸入/輸出錯誤
>>> f = open('py')
traceback (most recent call last):
file "", line 1, in
f = open('py')
filenotfounderror: [errno 2] no such file or directory: 'py'
類似嘗試開啟乙個不存在的磁碟檔案一類的操作會引發乙個作業系統輸入/輸出(i/o)錯誤. 任何型別的 i/o 錯誤都會引發 ioerror 異常.
7.attributeerror:嘗試訪問未知的物件屬性
>>> class myclass(object):
pass
>>> myinst = myclass()
>>> myinst.py = 'python'
>>> myinst.py
'python'
>>> myinst.py
traceback (most recent call last):
file "", line 1, in
myinst.py
attributeerror: 'myclass' object has no attribute 'py'
myinst.py 儲存了乙個值, 也就是例項 myinst 的 py 屬性. 屬性被定義後, 可以使用熟悉的點/屬性操作符訪問它, 但如果是沒有定義屬性, 例如訪問 py 屬性, 將導致乙個 attributeerror 異常.
二、檢測和處理異常
異常可以通過 try 語句來檢測。任何在 try 語句塊裡的**都會被監測,檢查有無異常發生。
try 語句有兩種主要形式: try-except 和 try-finally . 這兩個語句是互斥的, 也就是說你只 能 使 用 其 中 的 一 種 . 一 個 try 語 句 可 以 對 應 一 個 或 多 個 except 子 句 , 但 只 能 對 應 一 個 finally 子句, 或是乙個 try-except-finally 復合語句.
你可以使用 try-except 語句檢測和處理異常. 你也可以新增乙個可選的 else 子句處理沒有探測到異常的時執行的**. 而 try-finally 只允許檢測異常並做一些必要的清除工作(無論發生錯誤與否), 沒有任何異常處理設施. 正如你想像的, 復合語句兩者都可以做到.
初學者的錯誤
用記事本編寫 時 如需要輸入中文字元 要把格式改為utf 8格式編碼 不然會報c2001 常量中有換行符的錯誤 用define定義常量時在結尾不能用 號 用dos開啟qq時 輸入路徑有誤 g program files x86 tencent qq bin qqsclauncher.exe 應輸入 ...
16 oc初學者常見的錯誤
只有類的宣告,沒有類的實現 1.漏了 end 2.inte ce和 implementation巢狀 3.成員變數沒有寫在括號裡面 4.方法的宣告寫在了大括號裡面 5.成員變數不能在 中進行初始化 不能被直接拿出去訪問 6.方法不能當做函式一樣呼叫 7.oc方法只能宣告在 inte ce和 end之...
資料科學初學者九種常見錯誤
資料科學初學者九種常見錯誤 如果你想開始乙個資料科學 方面的職業,你可以通過避免這9個會使你付出高代價的初學者錯誤來免去幾天,幾個星期甚至幾個月的挫折。如果你不仔細,這些錯誤將會消耗你最寶貴的資源 你的時間 精力和動力。我們將它們分為三類 學習資料科學時的錯誤 求職時的錯誤 求職面試中的錯誤 學習資...