对于初学编程的同学来说,有一个很大的难点,那就是无法理解每一段代码什么意思,能实现什么功能。能否理解执行每段代码的功能相当关键,这一点对于学习编程语言的同学来说,应该颇有感触。本文就给大家带来一款神器,可以让初学者轻松理解每一段代码实现的功能过程。
实现一个排序、回溯、递归算法,它执行的过程到底是什么样的?为什么有的测试用例总是过不去?
手动一步一步写出来显然是很繁琐的,要么就借助IDE
,把每一步的执行结果以调试日志的形式输出到控制台,看一下每一步到底发生了什么。
曾经看过一则消息,VS Code
正准备加入可视化调试过程这项功能,这让我颇为期待,但是目前还无法提供这项功能。
python Tutor
Python Tutor
是一款在线的代码执行过程可视化工具。
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
的编辑框点击Visualize Execution就可以动态的执行你的代码,并且实时展示每一步的执行过程。
变化的效果如下图(实现过程图片过来,节选其中几张):
整个程序数变动的过程活生生呈现你眼前,够明了了吧。
python tutor 我多作为程序出现自已解释不了的错误,在网站上运行一次,执行过程对比,查找错误原因,又快又准。
然后,这款工具的名称为 Python Tutor
,但是,它支持的语言却不止 Python
这一种。它目前支持如下编程语言:
- Python
- Java
- C
- C++
- JavaScript
- TypeScript
- Ruby
其中,支持比较全面的就是 Python
,对于 Python
,它支持 Python 3.6
、 Python 2.7
、 Python with Anaconda
。
Python是一门对第三方包依赖很强的一种编程语言,因此,在开发过程中会经常用到 numpy
、 pandas
、pprint
等工具包。默认的 Python 3.6
和 Python 2.7
只有一些标准库,没有第三方包。
所以,如果你执行的代码片段中用到了第三方工具包,可以选择 Python with Anaconda
,这是因为 Anaconda
默认会安装常用的工具包。
但是,使用 Python with Anaconda
的速度会慢一些。
在我个人看来,这个工具比较适合编程初学者,例如面临校招的同学,这个工具对于熟悉编程帮助很大,可以加快你的学习效率,提升对编程语言的理解。
最后推荐一下上述7门编程语言的教程,感兴趣的同学可以看一下:
- Python教程:https://www.w3cschool.cn/python/
- Python微课:https://www.w3cschool.cn/minicourse/play/python3course
- Java教程:https://www.w3cschool.cn/java/
- Java微课:https://www.w3cschool.cn/minicourse/play/javaminicourse
- C教程:https://www.w3cschool.cn/c/
- C++教程:https://www.w3cschool.cn/cpp/
- C++微课:https://www.w3cschool.cn/minicourse/play/cppminicourse
- JavaScript教程:https://www.w3cschool.cn/javascript/
- JavaScript微课:https://www.w3cschool.cn/minicourse/play/jscourse
- TypeScript教程:https://www.w3cschool.cn/typescript/
- TypeScript微课:https://www.w3cschool.cn/minicourse/play/tsminicourse
- Ruby教程:https://www.w3cschool.cn/ruby/
- Ruby微课:https://www.w3cschool.cn/minicourse/play/rubycourse