天天看點

代碼的調試、運作

 1、準備工作

  (1)Python版本為3.6或者更高版本

  (2)已經建立了一個Python工程并且添加了内容,具體參考: ​​Getting Started tutorial​​

  2、第一步——運作代碼

  打開之前編寫的Oldboy.py檔案,在編輯框中右鍵,選擇快捷菜單中的“Run 'Oldboy'”選項。

代碼的調試、運作

3、什麼是Run/Debug模式

  每個需要運作/調試的腳本檔案都需要一個特殊的配置檔案來指定其腳本名稱、所在目錄以及其他重要的運作調試資訊。Pycharm已經內建了這種配置檔案,避免使用者手動去建立。

  每次當你單擊Run或者Debug按鈕時(或者在快捷菜單中執行相同操作),實際上都是将目前的運作/調試配置檔案加載到目前的調試模型中。

 如果你仔細觀察第一張圖檔就會發現,在組合框中根本就沒有 run/debug的相關資訊,知道第二張圖檔中它們才出現。這就意味着當執行運作/調試指令的時候,Solver腳本的run/debug配置檔案才會自動生成,正如現在所顯示的這樣。

  此時再主工具欄中Run(綠色箭頭按鈕)和Debug(綠色甲殼蟲按鈕)兩個按鈕變得可用:

代碼的調試、運作

圖中兩個按鈕由Pycharm自動建立

代碼的調試、運作

如果設定了多個run/debug方案,可以在圖中的下拉清單裡選中一個,作為目前的功項目配置檔案。

4、配置run/debug配置資訊

在上圖的下拉清單中,單擊Edit configuration選項,打開run/debug配置編輯視窗:

代碼的調試、運作

在左側目錄中将會出現兩個節點:Python和Default。在第一個節點目錄下有一個單一的配置選項'oldboy',在第二個選項下則有很多配置資訊。

  這意味着什麼呢?

 在Default節點下,你隻能看到架構的名稱或者模式名稱,如果你​​建立一個新的Run/Debug配置檔案​​,它将會在所選中的模式分支下進行建立,如果你更改了Default節點下的設定,相應的與其相關的所有配置檔案都會更改。

  例如,你想将Pycharm中所用到的Python解釋器替換成遠端或者本地解釋器,就可以通過更改Python頁面下的解釋器設定,這樣所有建立的調試配置檔案都會使用這個新的解釋器。

  早Python節點下,隻用單一的配置選項'Oldboy',它屬于Python類型的配置,但與Default節點下的Python機制并不相同,它使用一個非透明的圖示進行的表示,這是用來訓示目前配置檔案的儲存狀态的,當你儲存配置檔案之後圖示即變為非透明狀态。例如,我們在Python類型下為目前的Solver腳本建立一個配置檔案,取名'Oldboy1'。

  如果你對已存在的配置檔案做了任何更改,這些更改隻會應用于對應的腳本區域。

5、正式運作代碼檔案

  我們已經能夠通過一種​​非常直接的方式​​,接下來我們尋求其他方法來運作腳本。

  正如我們所知,運作腳本意味着加載目前的調試配置檔案,是以,運作腳本主要遵循以下流程:

  (1)在主工具欄中,單擊run/debug組框,确認目前的調試配置檔案資訊

  (2)做下面的工作(三選一即可):

    單擊運作按鈕,加載配置檔案

    按下Shift+F10快捷鍵

    在主菜單上,選擇Run → Run

  此時,我們可以在​​Run tool window​​.視窗中觀察程式的運作結果。

 6、選擇一個測試器

  首先,需要指定一個測試器。單擊工具欄的設定按鈕,打開Settings/Tools對話框,然後單擊進入​​Python Intergated Tools​​頁面(可以通過搜尋功能找到),預設選擇如下:

代碼的調試、運作

7、建立一個test程式塊

  首先我們建立一個test執行個體。Pycharm提供了一種非常智能的建立測試代碼的方法:單擊選中類名然後按下Ctrl+Shift+T快捷鍵,或者在主菜單中選擇Navigate → Test,如果test程式已存在,則會直接跳轉到對應代碼,否則建立它:

代碼的調試、運作

按照系統提示進行操作,Pycharm會顯示如下對話框:

代碼的調試、運作

單擊OK按鈕,檢視建立結果:

代碼的調試、運作

此時Pycharm已經自動建立了一個測試類,當然這隻是一個類架構,需要我們手動編寫測試函數。

 8、運作測試代碼

一切就緒後,右擊測試類名,在彈出的快捷菜單中選擇運作指令:

觀察運作狀态欄中 ​​Test Runner tab​​的輸出結果:

代碼的調試、運作

9、調試運作

  首先要弄清楚,為什麼要進行調試?假設我們的程式在運作過程中命中了一個錯誤,那我們如何定位錯誤發生的位置?這就需要進行調試。

在Pycharm中我們可以在其中直接對程式進行調試,唯一需要做的準備工作就是在程式必要的地方加設斷點,接下來我們進行詳細的介紹:

10、什麼是斷點?

  一個​​breakpoint​​​标記了一個行的位置,當程式運作到該行代碼的時候,Pycharm會将程式暫時挂起以友善我們對程式的運作狀态進行分析。Pycharm支援若幹中類型的斷點 ​​types of breakpoints​​​,可以通過對應​​圖示​​進行分辨。

  這裡我們采用Python的行斷點為例進行介紹

11、設定斷點

方法非常簡單,單擊代碼左側的空白灰色槽即可:

代碼的調試、運作

注意斷點會将對應的代碼行标記為紅色,這種顔色标記目前還不能被使用者所更改,我們會盡快出台解決方案。

順便說一句,取消斷點的操作也很簡單,在同樣位置再次單擊即可。

當你将滑鼠指針懸停在斷點上方時,Pycharm會顯示斷點的關鍵資訊,行号以及腳本屬性,如果你希望更改該斷點的屬性,右擊斷點:

代碼的調試、運作

12、代碼調試

接下來,我們正式開始對代碼進行調試。

首先從配置檔案組框中選擇同名的'Oldboy'檔案作為目前調試的配置檔案,然後單擊調試按鈕(綠色甲殼蟲樣式的按鈕):

接下來會Pycharm會執行以下操作:

  (1)PyCharm開始運作,并在斷點處暫停

  (2)斷點所在代碼行變藍,意味着Pycharm程式程序已經到達斷點處,但尚未執行斷點所标記的代碼。

  (3)​​Debug tool window​​視窗出現,顯示目前重要調試資訊,并允許使用者對調試程序進行更改。

代碼的調試、運作

  雖然Pycharm使用手冊中已經完整提供了調試視窗中所有控件的功能資訊,我們這裡仍然對其進行簡要介紹。我們發現視窗分為兩個頁籤:Debugger tab and the Console tab。

  (1)Debugger視窗分為三個可見區域:​​Frames​​​, ​​Variables​​​, 和 ​​Watches​​​。這些視窗列出了目前的架構、運作的程序,友善使用者檢視程式空間中變量的狀态等。當你選擇一個架構,就會顯示出相關的變量資訊,當然這些區域都是可以​​折疊隐藏​​的。

  (2)Console視窗顯示目前的控制台輸出資訊,預設這個視窗位于Debugger之下,可以通過單擊其标簽将其前置顯示。

  當然我們可以改變這些視窗的擺放位置,如果你不喜歡程式的預設排版的話。具體參加​​Moving tabs and areas​​章節。

  Debugger視窗的工作模式:

  按下F9(或者左側工具欄的綠色箭頭),程式會繼續運作到下一斷點處,通過這種方式你可以将每個斷點都運作一遍,觀察變量的變化。

  更多有關 Debugger視窗的資訊參見軟體手冊:​​product documentation​​

  Console視窗的工作模式:

  為什麼需要用到Console視窗呢?當我們需要檢視程式給出的錯誤資訊,或者進行一些額外的臨時運算時,就需要在這個視窗裡面進行。

  單擊Console頁籤使其前置:

代碼的調試、運作

激活了控制台機制,嘗試在其中執行一些Python指令:

代碼的調試、運作

努力成為一個開發者

個人站點:www.pythonav.cn