Python常见十六个错误集合,你知道那些?
使用python會出現各種各樣的錯誤,以下是Python常見的錯誤以及解決方法。
1.ValueError: ‘Conv2d_1a_3×3’ is not a valid scope name
這個是剛遇到的問題,在LZ自己手打Inception net的時候,想賦一個名字的時候出錯,其實這就是命名錯誤的問題,如果仔細看“×”是我在中文下打的符號,python是不認的,解決方案是使用英文字母”x“代替,錯誤即可解決,而且也能看到使用的卷積核的大小。
2.IndentationError:excepted an indented block
遇到這個問題簡直是要哭了,因為并不是語法錯誤的問題,而是你代碼書寫規范的問題。因為Python是一個對代碼縮進非常敏感的語言,你的循環結構就可能是依靠縮進的形式來表示的。最常見的問題就是TAB和space鍵的混用,這個是很容易報錯的,而且肉眼很難分辨出來,有的代碼編輯器可以選擇顯示空格,即便是這樣,也很難找到到底哪里有問題。
其實,上面的報錯還有一個原因經常遇到,就是無首行縮進,例如寫if語句是,后面加冒號后如果直接換行,好的代碼編輯器會自動首行縮進,但有些代碼編輯器可能沒有這個功能,這是需要你手動縮進,這是最好養成習慣,不要連續敲幾次空格鍵,直接一下TAB就可以了,保持代碼風格的一致在Python的使用中是非常重要的。
3.TypeError: max_pool2d() got an unexpected keyword argument ‘atride’
這個錯誤就是純粹的手誤問題了,你定義的函數中沒有這個關鍵字,這時候就要自己查看定義的函數名字,我這里應該是”stride“,在卷積神經網絡是定義步長的。
4.NameError: global name ‘time’ is not defined
這個問題是我在調用函數time.time()用來計算時間損耗時,使用的函數時報錯的,具體解決方案很簡單,只要在代碼開頭加上import time這句把time庫文件加進來就好了。
5.NameError: global name ‘datetime’ is not defined
解決方案同上,from datetime import datetime
6.NameError: global name ‘math’ is not defined
解決方案同上,import math
7.Python中出現類似ascii之類的報錯
這一類問題主要是在Python代碼中有中文輸入,這個解決方案是在代碼開頭加上:#coding:utf-8。不然凡是輸入中文輸入法下的字符就會報錯。
8.NameError: global name ‘listdir’ is not defined
import os這里需要注意幾個問題,如果直接使用import os的時候,那么調用是就需要寫成os.listdir(),如果是使用from os import *,那么是可以直接使用listdir(),但是會出現模塊之間的命名沖突問題,對代碼的穩定性會有一定的影響,所以LZ建議如果對模塊函數還不是很熟悉的情況下哈市使用第一種方法。
9.TypeError: ‘dict_keys’ object does not support indexing
這個問題是python版本的問題
#如果使用的是python2 firstStr = myTree.keys()[0] #LZ使用的是python3 firstSides = list(myTree.keys()) firstStr = firstSides[0]這是看決策樹代碼出現的問題,python3如果運行
firstStr = myTree.keys()[0]就會報這個錯誤,解決辦法就是先轉換成list,再把需要的索引提取出來。
10.NameError: name ‘reload’ is not defined
這個是如果小伙伴們修改了自己寫的module,在重載module時可能會出現的一個問題,解決方法還時很簡單
import importlib importlib.reload(your module)11.SyntaxError: invalid character in indentifier
我這里先貼出它報錯的那行代碼是怎么顯示的:
b = 6\xao這個LZ之前講過一般出現ascii之類的問題就是混中文輸入法了,出現這個問題著實尷尬,為什么?肉眼哪能看出來是中文輸入法下的空格和英文輸入法下的空格/(ㄒoㄒ)/~~,這個只能看到底哪行報錯吧中文的空格替換成英文的空格才行,其它也沒啥辦法,最好在輸入代碼時少切換切換輸入法形式。
12.NameError: name ‘xrange’ is not defined
python版本問題,不兼容,python3版本的換成range()函數就行了。
13.AttributeError: ‘list’ object has no attribute ‘testVec’
這是說list沒有這個屬性,是啥問題呢?LZ手殘的把’,’打成了’.’,知道python應該都知道’.’這是要在class里定義才能有的性質,自己憑空寫是沒用的。
14.SyntaxError: Missing paraentheses in call to ‘print’
老生常談了,python的版本問題,python3.X要加()。
print ('hello world!')15.SystemError: cannot compile ‘Python.h’
這個問題就是沒法解析Python的頭文件,解決方法還是很簡單的。
#先更新下源啦 sudo apt-get update#安裝python-dev sudo apt-get install python-dev16. no module named wx
缺少模塊的解決還是很好解決的,缺啥裝啥就行了
sudo apt-get install python-wxtoolsPython接觸時間不是很長,暫時遇到的錯誤還不時很多,所以就先寫這么多!
轉載于:https://blog.51cto.com/13786054/2126197
總結
以上是生活随笔為你收集整理的Python常见十六个错误集合,你知道那些?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visitor-访问模式
- 下一篇: mysql explain的使用(优化查