一款在線工具,克服Python、Java等7種語(yǔ)言編程障礙
對(duì)于編程語(yǔ)言初學(xué)者一個(gè)很大的障礙就是無(wú)法理解每一段代碼的含義是什么?執(zhí)行這段代碼會(huì)發(fā)生什么?
理解執(zhí)行每段代碼會(huì)發(fā)生什么至關(guān)重要,這一點(diǎn)對(duì)于刷過(guò)LeetCode題目的同學(xué)應(yīng)該感觸更加強(qiáng)烈。
實(shí)現(xiàn)一個(gè)排序、回溯、遞歸算法,它執(zhí)行的過(guò)程到底是什么樣的?為什么有的測(cè)試用例總是過(guò)不去?
手動(dòng)一步一步寫(xiě)出來(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)功能。
本文,就給大家?guī)?lái)一款神器,讓編程語(yǔ)言初學(xué)者徹底克服編程障礙,讓你輕松了解每一段代碼背后到底發(fā)生了什么。
Python Tutor
Python Tutor[1]是一款在線的代碼執(zhí)行過(guò)程可視化工具。
你只需要把需要執(zhí)行的代碼片段粘貼帶Python Tutor的編輯框,點(diǎn)擊Visualize Execution就可以動(dòng)態(tài)的執(zhí)行你的代碼,并且實(shí)時(shí)展示每一步的執(zhí)行過(guò)程。
雖然,這款工具的名臣為Python Tutor,但是,它支持的語(yǔ)言卻不止Python這一種。它目前支持如下編程語(yǔ)言:
- Python
- Java
- C
- C++
- JavaScript
- TypeScript
- Ruby
其中,支持比較全面的就是Python,對(duì)于Python,它支持Python 3.6、Python 2.7、Python with Anaconda。
Python是一門對(duì)第三方包依賴很強(qiáng)的一種編程語(yǔ)言,因此,在開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常用到numpy、pandas、pprint等工具包。默認(rèn)的Python 3.6和Python 2.7只有一些標(biāo)準(zhǔn)庫(kù),沒(méi)有第三方包。
所以,如果你執(zhí)行的代碼片段中用到了第三方工具包,可以選擇Python with Anaconda,這是因?yàn)锳naconda默認(rèn)會(huì)安裝常用的工具包。
但是,使用Python with Anaconda的速度會(huì)慢一些。
我個(gè)人認(rèn)為,Python Tutor這款工具比較適合面臨校招的同學(xué),這款工具對(duì)于理解算法的執(zhí)行過(guò)程,提升算法理解能力非常有幫助。