App下載

編程語(yǔ)言初學(xué)者的好幫手,一款支持python,Java等7門語(yǔ)言的可視化編程工具

猿友 2020-07-24 17:49:04 瀏覽數(shù) (3187)
反饋

對(duì)于初學(xué)編程的同學(xué)來(lái)說(shuō),有一個(gè)很大的難點(diǎn),那就是無(wú)法理解每一段代碼什么意思,能實(shí)現(xiàn)什么功能。能否理解執(zhí)行每段代碼的功能相當(dāng)關(guān)鍵,這一點(diǎn)對(duì)于學(xué)習(xí)編程語(yǔ)言的同學(xué)來(lái)說(shuō),應(yīng)該頗有感觸。本文就給大家?guī)?lái)一款神器,可以讓初學(xué)者輕松理解每一段代碼實(shí)現(xiàn)的功能過(guò)程。

實(shí)現(xiàn)一個(gè)排序、回溯、遞歸算法,它執(zhí)行的過(guò)程到底是什么樣的?為什么有的測(cè)試用例總是過(guò)不去?

手動(dòng)一步一步寫出來(lái)顯然是很繁瑣的,要么就借助IDE,把每一步的執(zhí)行結(jié)果以調(diào)試日志的形式輸出到控制臺(tái),看一下每一步到底發(fā)生了什么。

曾經(jīng)看過(guò)一則消息,VS Code正準(zhǔn)備加入可視化調(diào)試過(guò)程這項(xiàng)功能,這讓我頗為期待,但是目前還無(wú)法提供這項(xiàng)功能。

python Tutor

Python Tutor是一款在線的代碼執(zhí)行過(guò)程可視化工具。

def listSum(numbers):
    if not numbers:
        return 0
    else:
        (f,rest) = numbers
        return f * listSum(rest)


myList = (1,(2,(3, None)))
total = listSum(myList)

你可以把上面這段代碼黏貼到 python Tutor 的編輯框點(diǎn)擊Visualize Execution就可以動(dòng)態(tài)的執(zhí)行你的代碼,并且實(shí)時(shí)展示每一步的執(zhí)行過(guò)程。

Python Tutor

變化的效果如下圖(實(shí)現(xiàn)過(guò)程圖片過(guò)來(lái),節(jié)選其中幾張):

Python Tutor

Python Tutor

Python Tutor

Python Tutor

整個(gè)程序數(shù)變動(dòng)的過(guò)程活生生呈現(xiàn)你眼前,夠明了了吧。

python tutor 我多作為程序出現(xiàn)自已解釋不了的錯(cuò)誤,在網(wǎng)站上運(yùn)行一次,執(zhí)行過(guò)程對(duì)比,查找錯(cuò)誤原因,又快又準(zhǔn)。

然后,這款工具的名稱為 Python Tutor,但是,它支持的語(yǔ)言卻不止 Python 這一種。它目前支持如下編程語(yǔ)言:

  • Python
  • Java
  • C
  • C++
  • JavaScript
  • TypeScript
  • Ruby

其中,支持比較全面的就是 Python,對(duì)于 Python,它支持 Python 3.6Python 2.7、 Python with Anaconda。

Python是一門對(duì)第三方包依賴很強(qiáng)的一種編程語(yǔ)言,因此,在開發(fā)過(guò)程中會(huì)經(jīng)常用到 numpy、 pandas 、pprint 等工具包。默認(rèn)的 Python 3.6Python 2.7 只有一些標(biāo)準(zhǔn)庫(kù),沒有第三方包。

所以,如果你執(zhí)行的代碼片段中用到了第三方工具包,可以選擇 Python with Anaconda ,這是因?yàn)?Anaconda 默認(rèn)會(huì)安裝常用的工具包。

但是,使用 Python with Anaconda 的速度會(huì)慢一些。

在我個(gè)人看來(lái),這個(gè)工具比較適合編程初學(xué)者,例如面臨校招的同學(xué),這個(gè)工具對(duì)于熟悉編程幫助很大,可以加快你的學(xué)習(xí)效率,提升對(duì)編程語(yǔ)言的理解。

最后推薦一下上述7門編程語(yǔ)言的教程,感興趣的同學(xué)可以看一下:

0 人點(diǎn)贊