- 一、爲何要使用IDE?
- 二、PyCharm的下載安裝
- 三、PyCharm的基本使用
- 四、PyCharm程序調試
- 五、共用全局的Python解釋器
首先,什麼是IDE?python
答:IDE(Integrated Development Environment)集成開發環境,用於提供程序開發環境的應用程序,通常包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。簡單點說就是一個開發工具包。sql
其實,在安裝完Python後,就能夠直接進行Python開發,有下述兩種方式:數據結構
- 終端鍵入python,便可使用
python自帶的IDLE
進行開發;- 使用Sublime Text 和 Notepad++這類
代碼編輯工具
直接進行代碼編寫,編寫完成後保存成後綴爲`.py`的文件,接着命令行鍵入python xxx.py
執行。
上面兩種方式雖然可行,可是有些不方便,好比代碼縮進問題。Python中經過代碼縮進 來表示代碼塊,代碼一多,若是某行沒有正確縮進可能致使程序報錯或結果與預期不符, 很差排查。一個好的 IDE能夠給咱們帶來很多的便利,除了自動縮進,還有智能提示補全,方便的依賴庫管理等功能,無疑能夠提升咱們寫代碼的效率。 app
「PyCharm」,由JetBrains打造的一款Python IDE,除了能夠執行py文件外,還支持語法高亮,
智能提示,代碼跳轉,依賴庫管理,方便快捷切換不一樣python版本解釋器等強大功能。 PyCharm的Community版免費,基本夠用,固然若是你願意付費的話可使用 Professional版。 打開官網地址進行下載,www.jetbrains.com/pycharm/dow…,接着選擇對應的系統,下載安裝便可。 編輯器
Welcome頁點擊「Create New Project」打開項目建立窗口工具
左側提供了不少的模板工程,默認建立的是Pure Python(純Python),右側選擇工程保存的路徑和工程名就好,下面的這個irtualenv上一節說到的虛擬環境,點擊「Create」建立便可。 佈局
點擊工程,右鍵,點擊「New」,而後點擊「Python File」。開發工具
在彈出的對話框中輸入程序名,點擊「OK」完成建立。 lua
在左側雙擊打開建立的test.py文件,在右側便可進行代碼編寫,這裏寫了一個最簡單的程序, 定義一個變量a,賦值1,而後把a打印出來!spa
右鍵程序,找到: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 2, in <module>
print(a/0)
ZeroDivisionError:division by zero
複製代碼
點擊test.py便可定位到錯誤位置,爲第2行,而後進行修改便可。固然,只是這種顯而易見的錯誤可以直接定位到,更復雜的錯誤就須要經過程序調試來定位了。
通常的程序調試流程:「下斷點」,「單步調試」,「值跟蹤」
當程序執行到斷點所在的代碼時,會暫停應用程序的運行,線程被掛起,而後能夠經過調試器進行跟蹤。
下斷點的方式也很簡單,點擊某行代碼的左側,會出現如圖所示的小紅點。
這個小紅點就是斷點,在PyCharm中,有着各類類型的斷點:
對「特定行進行調試
」時用到,點擊行所在的左側邊欄便可設置。 右鍵點擊這個斷點,會彈出以下所示的設置對話框:
若是你取消了Enabled勾選,斷點就處於如圖所示的禁用狀態:
把斷點下到一個「方法」名前,通常用於檢測方法的「輸入參數」與「返回值」。好比:
有時咱們對程序運行過程並不關心,而只「關注某個變量的變化」,能夠在變量定義前加一個斷點。好比:
在程序運行過程當中,若是該變量的值發生改變,程序會自動停下來,並定位到變量值改變的地方,供開發者調試。
有時會有這樣的場景:把斷點打到循環體的中,咱們只關心特定循環次數下的運行狀況。 好比一個循環10次的循環體,咱們想知道循環到第8次時的運行狀況,若是你不知道條件斷點的話,你須要一直按「Run to Cursor」直到知足咱們的條件。好比下面的代碼:
使用條件斷點的話,郵件斷點,輸入以下所示的「等式條件」:
而後能夠發現,程序直接跳到i=8的時候才掛起,很是方便。
調試的時候咱們能夠經過打印日誌的方式來定位異常代碼大概位置,以縮小引起問題的範圍,而後再使用斷點精肯定位問題。若是是普通的打印日誌,咱們須要等待從新構建程序,若是用「日誌斷點」就避免這個無心義的等待。使用日誌斷點很是簡單,右鍵斷點,去掉「Suspend」的勾選,會出現以下所示的彈窗,勾選「Evaluate and log」在此輸入想輸出的內容。
運行調試後,當執行到日誌斷點的時候能夠看到控制檯輸出了對應的日誌信息,並且程序正常運行,並不會掛起。
若是想查看更詳細的信息,好比斷點的位置和觸發時的堆棧信息,能夠勾選「"Breakpint hit" message」和「Stacktrace」,勾選後輸出內容會變得更詳細。
所謂的臨時斷點就是:觸發一次後就自動刪除的斷點。設置的方法有兩種:
- 1.光標移到想打點的行,點擊菜單欄「Run」->「Toggle Temporary Line Breakpoint」, 等價於快捷鍵:「Ctrl+Alt+Shift+F8」
- 2.更便捷的操做:按住Alt,鼠標點擊左側邊欄。
鼠標點擊後能夠去掉臨時斷點,若是想把臨時斷點變成普通斷點,能夠取消勾選「Remove once hit」的選項。
用於監聽程序異常,一旦程序奔潰,直接定位到異常所在的確切位置。依次點擊: 「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的調試基本知識點就這些,
更多的還須要讀者自行到實戰中鞏固。
PyCharm默認啓用虛擬環境,每次建立項目,依賴到的模塊都須要pip裝一遍,有些繁瑣。
其實可讓當前項目和全局的Python解釋器共用。在建立項目的時候勾選:「inherit global stie-packages」便可,如圖所示:
若是本文對你有所幫助,歡迎
留言,點贊,轉發
素質三連,謝謝😘~