對於程式的初學者而言,理解程式的流程、迴圈的進行、或是變數的變化會需要一定程度將程式在腦中進行運算的能力,要一段時間熟悉與適應,尤其是當程式執行的結果不如預期時,往往是計算的過程和自己所想像的不同,這時又更難靠自己的能力找出錯誤。因此,這邊要介紹的這個工具可以將程式執行的過程逐行將變數的變化視覺化地呈現出來,幫助程式設計者理解。
在此頁面中可以選擇程式語言的種類,可以看到它有支援 Python、JavaScript、C、C++、Java 等,這裡以 Python 做為說明。
我們從
for 迴圈一文中找一段程式碼貼上,點選「Visualize Execution」。
接著,我們便可以點選「Next >」單行執行程式,或是「< Prev」回到上一步、「<< First」回到第一行、「Last >>」跳到最後一行,也可以直接拉動捲軸來執行程式。行數旁邊的深色箭頭會指示下一步要執行哪一行,淺色箭頭則是剛執行完的行數。右方藍底的「Frames」會顯示目前有哪些變數,黃底的「Objects」則是變數所指向的容器空間。
在執行的過程中,可以看到變數 i 由 1 不斷往上加,當滿足條件「i % 2 == 0」時直接進入下一個迴圈,若不滿足則會將 i 此時的數字做為元素附加到串列 odd_list 後面,清楚地將每行程式的執行結果以視覺化的方式展示出來。
對於一些較為複雜的程式,例如假設我要在網路上搜尋一個關於
Pascal's triangle 的演算法,就可以將此段程式碼貼到 Python Tutor 上,以視覺化的方式協助我們理解這段程式碼。
程式視窗下方的「Customize visualization」可調整一些視覺化的顯示方式,以及是否顯示某些 Frames 或 Objects。
最下方的「Generate permanent link」與「Generate embed code」可產生當前頁面的連結與嵌入代碼,做為分享與嵌入網站內使用。
Generate permanent link 與 Generate embed code
以上就是 Python Tutor 的使用方式,善用這個網站相信對於程式的理解與除錯都會有很大的幫助。