豬行天下之Python基礎——1.3 Python開發IDE之PyCharm

coder-pig發表於2019-04-02

內容簡述:

  • 1、為什麼要使用IDE?
  • 2、PyCharm的下載安裝
  • 3、PyCharm的基本使用
  • 4、PyCharm程式除錯
  • 5、共用全域性的Python直譯器

1、為什麼要使用IDE?

首先,什麼是IDE?

答:IDE(Integrated Development Environment)整合開發環境,用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、偵錯程式和圖形使用者介面等工具。簡單點說就是一個開發工具包

其實,在安裝完Python後,就可以直接進行Python開發,有下述兩種方式:

  • 終端鍵入python,即可使用python自帶的IDLE進行開發;
  • 使用Sublime Text 和 Notepad++這類程式碼編輯工具直接進行程式碼編寫,編寫完成後儲存成字尾為`.py`的檔案,接著命令列鍵入python xxx.py執行。

上面兩種方式雖然可行,但是有些不方便,比如程式碼縮排問題。Python中通過程式碼縮排 來表示程式碼塊,程式碼一多,如果某行沒有正確縮排可能導致程式報錯或結果與預期不符, 不好排查。一個好的 IDE可以給我們帶來不少的便利,除了自動縮排,還有智慧提示補全方便的依賴庫管理等功能,無疑可以提高我們寫程式碼的效率。

2、PyCharm的下載安裝

PyCharm」,由JetBrains打造的一款Python IDE,除了可以執行py檔案外,還支援語法高亮
智慧提示程式碼跳轉依賴庫管理,方便快捷切換不同python版本直譯器等強大功能。 PyCharm的Community版免費,基本夠用,當然如果你願意付費的話可以使用 Professional版。 開啟官網地址進行下載,www.jetbrains.com/pycharm/dow…,接著選擇對應的系統,下載安裝即可。

3、PyCharm的基本使用


① 建立專案

Welcome頁點選「Create New Project」開啟專案建立視窗

左側提供了很多的模板工程,預設建立的是Pure Python(純Python),右側選擇工程儲存的路徑和工程名就好,下面的這個irtualenv上一節說到的虛擬環境,點選「Create」建立即可。

② 新建程式

點選工程,右鍵,點選「New」,然後點選「Python File」。

在彈出的對話方塊中輸入程式名,點選「OK」完成建立。

③ 編寫程式

在左側雙擊開啟建立的test.py檔案,在右側即可進行程式碼編寫,這裡寫了一個最簡單的程式, 定義一個變數a,賦值1,然後把a列印出來!

④ 執行程式

右鍵程式,找到:Run 'test',即可執行程式,當然你也可以直接按快捷鍵。

執行後,底部會出現執行結果,比如這裡的列印出a的值為1。

⑤ 錯誤定位

我們並不能保證我們的程式一定是正確的,有時可能會因為一些問題導致程式 執行停止,那就 需要我們定位到錯誤位置了,比如我們把print(a)改成print(a/0), 故意引發除0錯誤。執行結果如下:

F:\Project\Python\Test\venv\Scripts\python.exe F:/Project/
Traceback( most recent call last):
File "F:/Project/Python/Test/test.py",line 2in <module>
print(a/0)
ZeroDivisionError:division by zero
複製程式碼

點選test.py即可定位到錯誤位置,為第2行,然後進行修改即可。當然,只是這種顯而易見的錯誤能夠直接定位到,更復雜的錯誤就需要通過程式除錯來定位了。

4、PyCharm程式除錯

一般的程式除錯流程:「下斷點」,「單步除錯」,「值跟蹤

① 下斷點

程式執行到斷點所在的程式碼時,會暫停應用程式的執行執行緒被掛起,然後可以通過偵錯程式進行跟蹤

下斷點的方式也很簡單,點選某行程式碼的左側,會出現如圖所示的小紅點。

這個小紅點就是斷點,在PyCharm中,有著各種型別的斷點:

  • 1. 行斷點

對「特定行進行除錯」時用到,點選行所在的左側邊欄即可設定。 右鍵點選這個斷點,會彈出如下所示的設定對話方塊:

如果你取消了Enabled勾選,斷點就處於如圖所示的禁用狀態:

  • 2. 方法斷點

把斷點下到一個「方法」名前,一般用於檢測方法的「輸入引數」與「返回值」。比如:

  • 3. 變數斷點

有時我們對程式執行過程並不關心,而只「關注某個變數的變化」,可以在變數定義前加一個斷點。比如:

在程式執行過程中,如果該變數的值發生改變,程式會自動停下來,並定位到變數值改變的地方,供開發者除錯。

  • 4.條件斷點(斷點設定Condition)

有時會有這樣的場景:把斷點打到迴圈體的中,我們只關心特定迴圈次數下的執行情況。 比如一個迴圈10次的迴圈體,我們想知道迴圈到第8次時的執行情況,如果你不知道條件斷點的話,你需要一直按「Run to Cursor」直到滿足我們的條件。比如下面的程式碼:

使用條件斷點的話,郵件斷點,輸入如下所示的「等式條件」:

然後可以發現,程式直接跳到i=8的時候才掛起,非常方便。

  • 5.日誌斷點

除錯的時候我們可以通過列印日誌的方式來定位異常程式碼大概位置,以縮小引發問題的範圍,然後再使用斷點精確定位問題。如果是普通的列印日誌,我們需要等待重新構建程式,如果用「日誌斷點」就避免這個無意義的等待。使用日誌斷點非常簡單,右鍵斷點,去掉「Suspend」的勾選,會出現如下所示的彈窗,勾選「Evaluate and log」在此輸入想輸出的內容。

執行除錯後,當執行到日誌斷點的時候可以看到控制檯輸出了對應的日誌資訊,而且程式正常執行,並不會掛起。

如果想檢視更詳細的資訊,比如斷點的位置和觸發時的堆疊資訊,可以勾選「"Breakpint hit" message」和「Stacktrace」,勾選後輸出內容會變得更詳細。

  • 6. 臨時斷點

所謂的臨時斷點就是:觸發一次後就自動刪除的斷點。設定的方法有兩種:

  • 1.游標移到想打點的行,點選選單欄「Run」->「Toggle Temporary Line Breakpoint」, 等價於快捷鍵:「Ctrl+Alt+Shift+F8
  • 2.更便捷的操作:按住Alt,滑鼠點選左側邊欄。

滑鼠點選後可以去掉臨時斷點,如果想把臨時斷點變成普通斷點,可以取消勾選「Remove once hit」的選項。

  • 7. 異常斷點

用於監聽程式異常,一旦程式奔潰,直接定位到異常所在的確切位置。依次點選: 「Run」->「View Breakpoints」開啟斷點檢視。點選「+」,然後選擇 「Python Exception Breakpoint」,在彈出的視窗中輸入要除錯的異常:

除了設定異常斷點外,你在這裡看到專案設定的所有斷點,並進行斷點管理與配置。

② 除錯工具詳解

這裡把除錯工具劃分為如圖所示的五個區域一個個講解:

A區(步進除錯工具)

圖示 名稱 功能描述
Show Exception Point 顯示執行點,定位到當前正在除錯的斷點。
Step Over 單步跳過,遇到方法直接執行完方法,進入下一步,不會進入方法內部。
Step Into 單步進入,遇到方法且是自定義的方法,則進入方法內部,否則不會進入。
Step Into My Code 單步進入,進入自己編寫的方法,不進入系統方法
Force Step Into 無論是系統還是自定義的方法都會進入
Step Out 單步跳出,跳出當前進入的方法,返回方法呼叫處的下一行(也意味著方法被執行完畢)。
Force Run to Cursor 執行到游標處,可以看做臨時斷點,程式執行到當前游標所在行暫停
Evaluate Expression 計算表示式,支援在除錯過程中,通過賦值或表示式方式修改任意變數的值。

注意

上面的執行到游標處是有個前提的:中途沒有斷點,如果你想強制執行到 游標處的話,你需要「Force Run to Cursor」,你可以通過下述兩種方式執行:

1.游標處右鍵,選中「Force Run to Cursor

2.使用快捷鍵:「Ctrl + Alt + F9」。

B區(控制除錯工具)

圖示 名稱 功能描述
繼續程式執行 程式執行到某個斷點暫停,如果有下一個斷點,點選後跳到這個斷點,沒有的話,程式則繼續執行。
暫停程式執行 暫停程式執行
終止程式執行 終止程式執行
檢視斷點 可以檢視所有的斷點,管理與斷點配置
禁用所有斷點 切換所有斷點的狀態(啟用/禁用),禁用後,程式就不會觸發斷點。
恢復佈局 恢復到原始佈局
設定 除錯的相關配置,比如是否顯示執行方法後的返回值
固定或取消標籤 固定或取消標籤

C區(幀除錯視窗)

這裡的幀指的是:堆疊幀,一種用於「儲存資料」和「部分過程結果」的資料結構;
每次呼叫方法在堆疊中都會佔用一部分記憶體,單位是幀,隨著方法呼叫而建立。
每個堆疊幀中包括了:「傳入引數」、「返回地址」、「區域性變數」以及「對程式除錯提供支援的資訊」。一個執行緒包括多個堆疊幀。

D區(變數區)

在這個區域可以看到堆疊幀中當前所有的資料(方法引數、本地變數、例項變數)。 右鍵某個變數,可以進行「設定\複製變數值」,「跳轉到變數在程式碼中的位置」等操作。 一個常用的操作:選擇「Add to Watches」,單獨監視這個變數的變化。

E區(監視視窗)

除了前面這種右鍵新增監視的方法外,你還可以直接在E區點選「+」進行新增。

不止監控變數,還支援監控表示式,比如上面的a+1,關於PyChram的除錯基本知識點就這些,
更多的還需要讀者自行到實戰中鞏固。

5、共用全域性的Python直譯器

PyCharm預設啟用虛擬環境,每次建立專案,依賴到的模組都需要pip裝一遍,有些繁瑣。
其實可以讓當前專案和全域性的Python直譯器共用。在建立專案的時候勾選:「inherit global stie-packages」即可,如圖所示:


如果本文對你有所幫助,歡迎
留言,點贊,轉發
素質三連,謝謝?~


相關文章