【应用】【python】数据原理可视化网站

pythontutor.com是个神奇的网站,可以很直观的查看Python的原理变化过程。

 

1 Python助手网站介绍

www.pythontutor.com通过可视化代码执行来帮助您学习 Python、JavaScript、C、C++ 和 Java。《流畅的python》一书中多次使用该网站来可视化Python数据变化过程,具备的优点如下:

  • 单步执行代码,具备向前(prev)和向后执行(next)的能力;
  • 直接拷贝或手写代码到文本框里执行;
  • python运行原理直观可视化,有助于对编程语言的理解。

2 Python助手使用截图

2.1 登陆

输入网站www.pythontutor.com直接进行登陆。 

【应用】【python】数据原理可视化网站_第1张图片

2.2 示例: 一个关于+=的谜题

这里以《流畅的python》一书中2.6节为例,来进一步使用该可视化工具。

执行第一步:这时候创建“不可变类型”元组t,我们观察这个元组发现,该元组内部嵌套一个“可变类型”列表[30, 40]。

【应用】【python】数据原理可视化网站_第2张图片

 执行第二步:对元组t第三个元素进行修改时,出现“tuple object does not support item assignment”错误。此时元组t却发生了变化。【应用】【python】数据原理可视化网站_第3张图片

书中通过字节码的方式解释了该现象出现的原因:第一步,因为元组t的第三个元素指向的是一个可变类型的列表,因此t[2] + [30, 40]是能够完成。第二步,由于元组是不可变类型,当t[2] + [30, 40]计算结果对t[2]赋值时就会报错。整个过程是先完成第一步的列表扩充,再完成第二步的元组赋值,所以即便出现错误也还是会更改元组t。书上给的建议是:不要把可变对象放在元组里面。

参考文献:

[1] PROGRAMMING/PYTHON. Fluent Python. 

你可能感兴趣的:(python)