国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何直觀地理解程序的運行過程?

Olivia / 2851人閱讀

摘要:了解代碼的執(zhí)行過程是編程的基本要求。還有種方法就是使用提供的調(diào)試功能,通過添加斷點和單步運行,了解程序的運行狀態(tài)。對于初學編程,難以理解程序運行過程的苦手來說,絕對可稱之為神器。每天共執(zhí)行和演示超過段程序。

了解代碼的執(zhí)行過程是編程的基本要求。一個熟練的編程老手只需要用肉眼看著代碼,就能對其運行的過程有所了解。然而對于剛接觸編程不久的新手來說,這種事情就沒那么顯而易見了。于是在編寫代碼和調(diào)試代碼時,一旦程序的邏輯有些復(fù)雜,就像掉進代碼的迷宮,完全不知道東南西北。

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

還有種方法就是使用 IDE 提供的調(diào)試功能,通過添加斷點和單步運行,了解程序的運行狀態(tài)。Visual Studio、Eclipse、xCode 等常見的 IDE 幾乎都提供了調(diào)試工具。對于 Python,也可以使用 pdb 庫來實現(xiàn)斷點調(diào)試。

上述兩種途徑應(yīng)該是大部分程序員 debug 時候的基本套路。但同樣的,對于新手來說,即使這樣的工具,用起來仍然有些費力。

有時我會選擇在紙上畫出一些流程和圖形來向人解釋程序,雖然效果會好些,但顯然不是一種可以廣泛推廣的方式。后來意外發(fā)現(xiàn)有一款工具滿足了此類需求,非常適合新手,可以讓你直觀地“看”出程序是怎么運行的。對于初學編程,難以理解程序運行過程的苦手來說,絕對可稱之為“神器”。

這就是 Online Python Tutor 。一款免費的在線代碼運行及演示工具。

項目地址:pythontutor.com

關(guān)于此項目的介紹(摘自網(wǎng)絡(luò),出處未知):

Online Python Tutor 是由 Philip Guo 開發(fā)的一個免費教育工具,可幫助學生攻克編程學習中的基礎(chǔ)障礙,理解每一行源代碼在程序執(zhí)行時在計算機中的過程。通過這個工具,教師或?qū)W生可以直接在 Web 瀏覽器中編寫 Python 代碼,并一步一步可視化地執(zhí)行程序。

截至 2013 年 12 月,來自 165 個國家和地區(qū)共 50 萬多人使用了這個在線工具,通常是用作教材、講義或在線編程指南的補充。每天共執(zhí)行和演示超過 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 代碼,把此工具嵌入到你自己的頁面中。

也可以生成鏈接,把你的代碼直接分享給別人。

附帶單元測試功能。

網(wǎng)站上還提供了很多的實例,其中包括一些比較經(jīng)典的算法。

再來體驗一下其使用過程:

在編輯器里輸入代碼,點擊 “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

我用了段包含循環(huán)、列表、函數(shù)、模塊的代碼片段。看看效果如何:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44840.html

相關(guān)文章

  • 白話Java I/O模型

    摘要:因為所有的數(shù)據(jù)從最底層講是字節(jié),那么就可以使用字節(jié)流這個概念去指代數(shù)據(jù)動態(tài)轉(zhuǎn)移這個過程。而數(shù)據(jù)的轉(zhuǎn)移,就是把一堆字節(jié)流從運往。創(chuàng)建內(nèi)存中的中轉(zhuǎn)區(qū)域,然后將上面的文件的字節(jié)流直接接入到這個。然后再從把字節(jié)流輸出到對應(yīng)的。 I/O的很多操作和使用,其實并不是一個非常直觀的概念,特別是打開文件、創(chuàng)建buffer。這對于終端用戶來講是個非常奇葩和奇怪的過程。我只是想要從一個文件里讀取內(nèi)容,從過...

    VincentFF 評論0 收藏0
  • 弄懂JavaScript作用域和閉包

    摘要:關(guān)于本書,我會寫好幾篇讀書筆記用以記錄那些讓我恍然大悟的瞬間,本文是第一篇弄懂的作用域和閉包。作用域也可以看做是一套依據(jù)名稱查找變量的規(guī)則。聲明實際上是根據(jù)你傳遞給它的對象憑空創(chuàng)建了一個全新的詞法作用域。 《你不知道的JavaScript》真的是一本好書,閱讀這本書,我有多次哦,原來是這樣的感覺,以前自以為理解了(其實并非真的理解)的概念,這一次真的理解得更加透徹了。關(guān)于本書,我會寫好...

    everfly 評論0 收藏0
  • JavaScript 程序員可以從C++中學到什么

    摘要:特別是所謂的不需要的引用可能會導(dǎo)致內(nèi)存泄漏,這意味著程序占用的內(nèi)存比實際需要的多,從而降低了內(nèi)存的效率。但是如果我們能夠意識到內(nèi)存泄漏的風險,就可以采取措施將其刪除。意外的使用全局變量是導(dǎo)致內(nèi)存泄漏的一個常見原因。 作者:Bret Cameron翻譯:瘋狂的技術(shù)宅原文:https://medium.com/@bretcamer... 本文首發(fā)微信公眾號:前端先鋒歡迎關(guān)注,每天都給你...

    不知名網(wǎng)友 評論0 收藏0
  • 如何成為一個優(yōu)秀程序

    摘要:我開始去關(guān)注一個問題的最終目的是什么,得益于喬治波利亞的書如何解決這個問題。在此基礎(chǔ)上,我也會制定了計劃,這也是喬治波利亞的另一個建議。明白為什么讓我對前后關(guān)系理解更深刻,幫助我成為一個見多識廣的程序員。 showImg(https://segmentfault.com/img/bVbvMKu); 原文鏈接: https://medium.com/free-code-camp... ...

    wuyangchun 評論0 收藏0

發(fā)表評論

0條評論

Olivia

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<