首頁  >  文章  >  後端開發  >  python程式的運作過程如何理解?

python程式的運作過程如何理解?

不言
不言轉載
2018-10-20 15:16:482705瀏覽

本篇文章帶給大家的內容是關於python程式的運作過程如何理解?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

了解程式碼的執行過程是程式設計的基本要求。一個熟練的程式老手只需要用肉眼看著程式碼,就能對其運行的過程有所了解。然而對於剛接觸程式設計不久的新手來說,這種事情就沒那麼顯而易見了。於是在寫程式碼和偵錯程式碼時,一旦程式的邏輯有些複雜,就像掉進程式碼的迷宮,完全不知道東南西北。

所以,每當有人對自己的程式碼沒有給出預想結果而百思不得其解,無奈尋求幫助時,我都會建議在程式中增加輸出,一方面是根據不同輸出的先後順序來判斷程式的運行路徑,另一方面則是觀察各變數在運行過程中的實際數值,確認在哪裡發生了錯誤。

還有種方法就是使用 IDE 提供的偵錯功能,透過新增斷點和單步運行,了解程式的運作狀態。 Visual Studio、Eclipse、xCode 等常見的 IDE 幾乎都提供了偵錯工具。對於 Python,也可以使用 pdb 函式庫來實作斷點偵錯。

上述兩種途徑應該是大部分程式設計師 debug 時候的基本套路。但同樣的,對於新手來說,即使這樣的工具,用起來仍然有些費力。

有時我會選擇在紙上畫出一些流程和圖形來向人解釋程序,雖然效果會好些,但顯然不是一種可以廣泛推廣的方式。後來意外發現有一款工具滿足了這類需求,非常適合新手,可以讓你直覺地「看」出程式是怎麼運作的。對於初學編程,難以理解程式運行過程的苦手來說,絕對可稱之為「神器」。

這就是 Online Python Tutor 。一款免費的線上程式碼運行及示範工具。

專案位址:pythontutor.com

關於此專案的介紹(摘自網絡,來源未知):

Online Python Tutor 是由 Philip Guo 開發的一個免費教育工具,可幫助學生攻克程式設計學習中的基礎障礙,並理解每一行原始程式碼在程式執行時在電腦中的過程。透過這個工具,教師或學生可以直接在 Web 瀏覽器中編寫 Python 程式碼,並一步一步地視覺化地執行程式。

截至 2013 年 12 月,來自 165 個國家和地區共 50 萬多人使用了這個線上工具,通常是用作教材、講義或線上程式設計指南的補充。每天共執行和示範超過 6,000 段 Python 程式.除了自學的初學者,Online Python Tutor 的用戶還包括了那些參加 Coursera、edX 和 Udacity 等線上課程的學生,還有諸如 MIT、UC 柏克萊等大學的教師。

  • Python Tutor 支援 2.7 和 3.3 兩個版本的 Python。

  • 除了 Python 外,還可執行 Java、JavaScript、TypeScript、Ruby,另外還有支援 C、C 的版本。

  • 可以透過一行 JS 程式碼,把這個工具嵌入到你自己的頁面中。

  • 也可以產生鏈接,把你的程式碼直接分享給別人。

  • 附帶單元測試功能。

  • 網站上也提供了許多的實例,其中包含一些比較經典的演算法。

再來體驗其使用過程:

在編輯器裡輸入程式碼,點擊 “Visualize Execution” 即可執行並示範。

import random

def fn(x):
    return x**2

result = []
for i in range(3):
    t = random.randint(1, 10)
    print t
    r = fn(t)
    result.append(r)
print result

我用了段包含循環、列表、函數、模組的程式碼片段。看看效果如何:

python程式的運作過程如何理解?

#左上是程式碼,箭頭表示目前運行到的位置。

透過下面的按鈕和進度條可以直接控製程式的進行。

左下是輸出。

右邊就是程式的視覺化模擬。在這個例子裡,可以清楚地看到過程中變數的變化,何時調用了函數等資訊。

不過同很多線上運行環境一樣,Python Tutor 不支援運行過程中的輸入功能。所以沒辦法把我們的猜數字或是罰點球的小遊戲直接放上去跑。希望以後能夠增加此功能。

借助 Python Tutor,可以更輕鬆地理解一些演算法。最後放一個冒泡排序的實現,[](http://crossin-forum.b0.upaiy...

python程式的運作過程如何理解?

以上是python程式的運作過程如何理解?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除