Python程式設計常見十大錯誤,搞事情!

程式設計師小城發表於2019-03-17

01 ValueError

ValueError: ‘Conv2d_1a_3×3’ is not a valid scope name

其實這就是命名錯誤的問題,

如果仔細看“×”是我在中文下打的符號,python是不認的。

解決方案是使用英文字母”x“代替,錯誤即可解決。

02 IndentationError

IndentationError:excepted an indented block

遇到這個問題簡直是要哭了,

因為並不是語法錯誤的問題,而是你程式碼書寫規範的問題。

因為Python是一個對程式碼縮排非常敏感的語言,你的迴圈結構就可能是依靠縮排的形式來表示的。

最常見的問題就是TAB和space鍵的混用,

這個是很容易報錯的,而且肉眼很難分辨出來。

有的程式碼編輯器可以選擇顯示空格,即便是這樣,也很難找到到底哪裡有問題。

其實,上面的報錯還有一個原因經常遇到,就是無首行縮排。

例如:寫if語句是,後面加冒號後如果直接換行,好的程式碼編輯器會自動首行縮排,

但有些程式碼編輯器可能沒有這個功能,這是需要你手動縮排。

這是最好養成習慣,不要連續敲幾次空格鍵,直接一下TAB就可以了,

保持程式碼風格的一致在Python的使用中是非常重要的。

03 TypeError

TypeError: max_pool2d() got an unexpected keyword argument ‘atride’

這個錯誤就是純粹的手誤問題了。

你定義的函式中沒有這個關鍵字,

這時候就要自己檢視定義的函式名字,我這裡應該是”stride“,

在卷積神經網路是定義步長的。

04 NameError

NameError: global name ‘time’ is not defined

這個問題是我在呼叫函式time.time()用來計算時間損耗時,

使用的函式時報錯的。

具體解決方案很簡單,

只要在程式碼開頭加上import time,把time庫檔案加進來就好了。

05 Python中出現類似ascii之類的報錯

這一類問題主要是在Python程式碼中有中文輸入,

這個解決方案是在程式碼開頭加上:#coding:utf-8

不然凡是輸入中文輸入法下的字元就會報錯。

06 NameError

NameError: global name ‘listdir’ is not defined

import os 這裡需要注意幾個問題,

如果直接使用import os的時候,那麼呼叫是就需要寫成os.listdir(),

如果是使用from os import *,那麼是可以直接使用listdir(),

但是會出現模組之間的命名衝突問題,

對程式碼的穩定性會有一定的影響,

所以建議如果對模組函式還不是很熟悉的情況下還是使用第一種方法。

07 TypeError

TypeError: ‘dict_keys’ object does not support indexing

這個問題是python版本的問題

08 NameErro

 

NameError: name ‘reload’ is not defined

這個是如果小夥伴們修改了自己寫的module,

在過載module時可能會出現的一個問題。

解決方法如下:

09 AttributeError

AttributeError: ‘list’ object has no attribute ‘testVec’

這是說list沒有這個屬性,是啥問題呢?

LZ手殘的把’,’打成了’.’,知道python應該都知道’.’

這是要在class裡定義才能有的性質,自己憑空寫是沒用的。

10 SystemError

SystemError: cannot compile ‘Python.h’

這個問題就是沒法解析Python的標頭檔案

相關文章