本節我們來學些一下程序的調試,有的同學會有疑問,我們運行程序不就可以看調試的結果嗎,但是大家需要知道,程序的設計是要有邏輯性的,自上而下的設計結構有利於我們對程式的理解,所以我們保證程式自上而下更有利用於開發,而調試就是幫助我們完成這種設計理念的最佳方式,下面我們學習兩種調試方式,一種使用IDLE中自帶的調試功能,一種使用assert語句進行調試。
不知道大家在使用IDLE的時候有沒有發現上面的'Debug'選項,
在'Debug'選項中又有一個名為'Debugger'的選項,我們點擊一下會出現下圖的介面,中間的[DEBUG ON]表示以開啟偵錯狀態。
新增方式:右鍵想要新增的語句,然後在彈出的選單中選擇Set Breakpoint,即新增了對應的斷點,如果要清楚斷點,相同的方式選擇Clear Breakpoint。
斷點的作用是程式執行到斷點就中斷執行,我們可以查看目前狀態下的變數等資訊。
新增斷點之後如下圖:
按鈕的作用:
Go:執行到斷點處。
Step:進入要執行的函數
Over:單步執行
Out:跳出目前函數
Quit:結束按鈕
我們調試的時候,在程式介面按F5開始,按Go開始執行到第一個斷點,我們可以觀察變數n的值。
第一次斷點的時候,m為5,n為20,再按Go按鈕進入下一個斷點。
此時n的值發生改變,我們再按一次Go進入下個斷點。
n的值再次改變,後續無斷點,依Go後結束。
調試完成。
透過IDLE自帶的程式偵錯功能能夠幫助我們逐步分析程式中的全域變量,也可以透過行的定位看出目前函數的局部變量,當我們把一個局部變數變成全域變數的時候,也可以透過斷點後的測試直接查看到局部變數轉換到了全域變數中,這種調試方式還能幫助我們去理解他人的程序,能為我們的學習提供很大的幫助。