如何直观地理解程序的运行过程?

了解代码的执行过程是编程的基本要求。一个熟练的编程老手只须要用肉眼看着代码,就能对其运行的过程有所了解。然而对于刚接触编程不久的新手来讲,这种事情就没那么显而易见了。因而在编写代码和调试代码时,一旦程序的逻辑有些复杂,就像掉进代码的迷宫,彻底不知道东南西北。html

因此,每当有人对本身的代码没有给出预想结果而百思不得其解,无奈寻求帮助时,我都会建议在程序中增长输出,一方面是根据不一样输出的前后顺序来判断程序的运行路径,另外一方面则是观察各变量在运行过程当中的实际数值,确认是在哪里发生了错误。 python

还有种方法就是使用 IDE 提供的调试功能,经过添加断点和单步运行,了解程序的运行状态。Visual Studio、Eclipse、xCode 等常见的 IDE 几乎都提供了调试工具。对于 Python,也可使用 pdb 库来实现断点调试。 程序员

上述两种途径应该是大部分程序员 debug 时候的基本套路。但一样的,对于新手来讲,即便这样的工具,用起来仍然有些费力。 算法

有时我会选择在纸上画出一些流程和图形来向人解释程序,虽然效果会好些,但显然不是一种能够普遍推广的方式。后来意外发现有一款工具知足了此类需求,很是适合新手,可让你直观地“看”出程序是怎么运行的。对于初学编程,难以理解程序运行过程的苦手来讲,绝对可称之为“神器”。 编程

这就是 Online Python Tutor 。一款免费的在线代码运行及演示工具。 浏览器

项目地址:pythontutor.com 网络

关于此项目的介绍(摘自网络,出处未知):app

Online Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。经过这个工具,教师或学生能够直接在 Web 浏览器中编写 Python 代码,并一步一步可视化地执行程序。

截至 2013 年 12 月,来自 165 个国家和地区共 50 万多人使用了这个在线工具,一般是用做教材、讲义或在线编程指南的补充。天天共执行和演示超过 6,000 段 Python 程序。除了自学的初学者,Online Python Tutor 的用户还包括了那些参加 Coursera、edX 和 Udacity 等在线课程的学生,还有诸如 MIT、UC 伯克利等高校的教师。dom

  • 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 Tutor 不支持运行过程当中的输入功能。因此无法把咱们的猜数字或是罚点球的小游戏直接放上去运行。但愿之后可以增长此功能。

借助 Python Tutor,能够更轻松地理解一些算法。最后放一个冒泡排序的实现,[](http://crossin-forum.b0.upaiy...

-------------------------------------------------

其余文章及回答:
编程初学者如何使用搜索引擎
[](http://crossin-forum.b0.upaiy...

相关文章
相关标签/搜索