Python学习神器推荐 - Python Tutor

aafeng
·
·
IPFS

对于很多初学者来说,Python中的众多概念极易混淆。在教自己孩子学习Python编程的时候就遇到了这样的问题,苦于无法直观的解释一些概念。最近发现的Python Tutor这个网站然我不禁眼睛一亮。这个网站可以让初学者直观的理解Python代码执行的过程,逐步可视化程序的运行过程。其最大的亮点就是把程序的执行过程在内存中的表现通过图形的方式来展示,这样就非常便于理解。

首先看下面一段简单的代码:

b = [1, 3, 5, 7, 9]
b = a
a[0] = 0
print(b[0])

代码很简单,展示了Python中的浅拷贝。但是对于初学者来说,怎样才能更加直观的理解这个概念呢?我们来看看Python Tutor中的演示:




通过上面的演示,可以非常直观的理解,其实a和b指向的是内存中的同一个对象,更改a[0]自然会导致b[0]也会被改变。

Python Tutor中还提供了一些自定制的功能,包括可以自定义演示的箭头,形状等:


在Python Tutor中有两种模式:在线编辑模式(Edit)和动态演示模式(Live)。简而言之,编辑模式就是一次性把代码写完,然后再统一运行,然后分步骤查看代码在内存中的表示。而动态演示模式则是在你键入代码的同时,Python Tutor会实时可视化代码在内存中的状态。

举一个代码深拷贝的例子来演示Python Tutor的动态演示模式。

首先键入如下代码:

from copy import deepcopy

a = [1, 3, 5, 7, 9]

你会看到如下的演示:


接下来分别进行浅拷贝和深拷贝:

b = a
c = deepcopy(a)

可以看到非常清晰的示意图:


看到这样的可视化演示,还有什么不能理解的呢?其实,除了Python程序的可视化演示,Python Tutor还有一系列的功能:Java Tutor, C Tutor, C++ Tutor, JavaScript Tutor, Ruby Tutor等来支持不同语言的可视化演示。

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!