1. 程式人生 > >Python花式錯誤集錦(大集合),這些你都見過嗎?

Python花式錯誤集錦(大集合),這些你都見過嗎?

 

作為一個Python 新手,難免在學習的過程中會遇到很多編譯錯誤,那麼在這裡做一個彙總,避免今後犯同樣的錯誤,希望對大家有所幫助。

語法錯誤篇

1、縮排IndentationError

這是我們在複製貼上python程式碼,或者是不熟悉Python程式碼結構的時候,常常會範的錯誤。

Python中要求同一邏輯的程式碼塊需要使用同樣的縮排(常用4個空格)

如:

 

執行後,報錯

 

解決方法:把程式碼的縮排統一調整為的4個空格就好了

2.、標點符號SyntaxError

這種情況比較常見:

  • 冒號錯誤
  • 逗號錯誤
  • 小括號缺失或不匹配

如:

 

修改方式:

  • 簡單記法是中文的都比較胖,英文的都是瘦子。
  • 括號的問題,養成一種上來先把成對()寫好的習慣,然後再填內容。

變數應用篇

1、命名錯誤

一定要記住:禁止使用Python自帶的關鍵詞來命名,比如list,dict等,這些都是不可取的,會導致型別錯誤的

 

 

  • 建議:命名時候的使用下劃線_連字元,或者theName,TheName這種首字母大寫的駝峰法。
  • 不建議:使用0(數字零)或者l(小寫的L)來命名,否則容易引起下面的使用錯誤。

2.、使用錯誤

這裡最常見的是大家會使用容易混淆的字母來命名

  • 造成使用的時候出錯
  • 或者是使用時候完全用錯了變數

 

編碼錯誤篇

Python3中,我們遇到的最常見編碼錯誤是在網路應用中,有時候我們得到的資料是bytes,但是我們實際需要str,這時候我們就需要轉換編碼。

  • 這裡我們需要注意bytes和str的轉換,其中 encoding='utf-8'是預設的引數

 

匯入模組篇

  • 沒有提前匯入

這裡經常會發生的錯誤是:使用某些模組的功能,但是py檔案頭部忘記匯入

 

通常這種情況會出現在我們學習某些新內容中,敲完程式碼開始執行的時候,就會發現啥啥啥沒defined,就需要去檢查是不是最開始沒有import的問題了。

當我們加入import json後,可得到正確結果{'name': 'de8ug', 'city': 'beijing'}

 
執行py檔案時候報錯ModuleNotFoundError: No module named 'xxx' 

遇到這種情況:我們一般是執行的那個.py檔案又需要匯入自己定義的其他模組,

但此時系統不知道哪些模組的存在

解決辦法是:在執行的第一個.py檔案頭部,新增如下程式碼:

這種情況適用於有個project專案,裡面又bin,conf,app等目錄

當bin裡面的py檔案又需要引入conf,app等目錄的模組時候

需要讓系統本身知道project這目錄的存在,先有爺爺,然後才能有孫子啊。

 

函式使用篇

作用域問題

Python在函式中使用變數的時候,會按照LEGB(Local(本地),Enclosing(封閉)

Global(全域性),Built-in(內建))這種作用域的順序來查詢變數

如果有賦值(給同名的變數)操作,需要確保當前作用域下已經有這個變數。

因為這時候Python認為函式內部和外部有同名的變數,會把外部的遮蔽。

 

改進方式:

  • 直接引用外部變數,使用相應的方法
  • 採用不同的變數名

 

類似的還有+=的時候,這時候相當於兩部操作,先=後+

但,如果函式內部變數和函式外相同,就會出現類似上面的錯誤。

你感受一下:

 

這些你有遇到過嗎?踩過這些坑嗎?