首页 > IT圈内 > Python大牛和门外汉,只有1个网站、1个按钮的差距
2022
07-04

Python大牛和门外汉,只有1个网站、1个按钮的差距

Python 是一门流行语言

当下最流行的编程语言是什么?答案毋庸置疑,非Python莫属。

TIOBE 公布的 2022 年 3 月的编程语言排行榜上,Python依然是第一名,而且自从2021年10月荣登第一名后,Python 最近一直牢牢占据榜单第一名的位置。

更关键的是,Python不仅仅是流行的编程语言,也是很实用的工具语言,用它来开发一些脚本、测试工具、机器学习算法验证工具等都是非常快捷的。
对于这样一门流行语言,能在1周内快速入门吗?
工欲善其事必先利其器,要学习一门新的编程语言,先得找到趁手的好工具,能让你做事事半功倍。百度 + Google了半天,再加上一周的切身实践,指南君终于找到了学习Python的小窍门,这里也免费分享给大家,大家一起飞速学习Python吧!


快速上手 Python -- 可视化代码调试
今天推荐给大家的Python学习利器是一个可视化代码调试平台 Python tutor。它可以让你详细了解程序代码运行过程中,内部是怎么运作的。
例如数据在不同的容器中是如何存储、转换,以及不同的数据容器大概是什么模样的。
下面用一个例子演示下这个平台的用法,同时也让大家看下可视化代码调试的好处。
例如Python中的对象复制操作,可以有两个函数实现copy和deepcopy,那这两个函数的用法有什么差异呢?查阅官方的文档解释如下:

copy:

英文:some members of the copy may reference the same objects as the original,
中文:拷贝的一些成员可能会有和原始对象引用到相同的对象


deepcopy:


英文:all members of the original are cloned. There are no shared objects
中文:原本中所有对象都被复制来了,他们(指原本和副本)没有共享对象


这感觉说得好抽象,特别是对初学者来说,完全是云里雾里不知所云!问问度娘,也说Python中存在所谓的 shallow copy 和 deep copy 两种概念,但两种复制操作在代码运行过程中到底有什么差异呢?



这里通过可视化工具,可以快速而直观地理解这个问题。

首先我们设计一段代码实例如下:

import copy
a = [1, 2, 3, 4, [5, 6, 7, 8]]

b = copy.copy(a)
c = copy.deepcopy(a)

其中变量a是一个列表型数据,存储了int数据和一个list型数据。

列表是Python中最基本的数据结构,它的数据项不需要具有相同的类型,例如我们可以定义一个下面的列表数据:

然后把这段代码通过可视化工具去调试,一步步查看代码是如何执行的,结果如下:


通过执行过程我们可以看出:
  • a和b拥有同一份内存空间中的共享元素
  • a和c各自拥有独立的内存存储空间
这也印证了官方文档中的说明:copy.copy是浅层拷贝,不会拷贝嵌套的元素,而copy.deepcopy是深层拷贝,会拷贝嵌套的元素。同时,这个规则具有普适性,如果把a的数据类型切换为Dictionary,会更明显地看出copy和deepcopy的区别.


工具获取
免费获取Python可视化调试工具:https://pythontutor.com/

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取