Python----从杨辉三角联系到深拷贝和浅拷贝

啦啦啦啦,我又回来啦,假期是不是有些无聊了,做惯了C++的我决定学一下python,毕竟的确是很方便

图是网上盗来的,这就是杨辉三角形,我们的任务就是在python每次输出可以输出三角形的每一行(除了第一行以外)

显然,这个三角形无穷无尽,我们要是输出每一行是不现实的,GG思密达

那么有两种选择:1、由我们决定输出几行;

                             2、用某种手段是的每输出一行就停止,并且你可以不断的调用,来使得程序继续一行一行输出下去;

哇!!!!第二种方法是不是有点晕,还有这种操作,python的generator(生成器)还有next()函数了解一下,如果不了解,eng?百度搜索天下第一(墙内)

来来来,这三角形的规律超级简单

我们来试试看哈

函数建好啦,美滋滋,去调用一下

啊咧,脸肿了…………

WHY,函数里的算法乍一看逻辑上没什么问题啊,你们看出来了么!!!!

弄了好久我这个初学者知道了python和C++不同

s=l这行代码是浅拷贝

emmmmm……你是不是不知道啥是浅拷贝,顾名思义,有浅就有深嘛

浅拷贝出来的对象和原对象指向同一块内存,什么意思呢

比如b=a,那么b和a指向同一个内存,那么既然相同,当你改变a的时候b显然也改变了,等等你是不是突然悟到了为什么之前的s=l是罪魁祸首了吧,原因就是浅拷贝

那么改成深拷贝就可以了,深拷贝就是为对象b重新开辟了一块内存,同时将a的值赋给b,那么a改变的时候,因为内存不同,显然不会影响到b的值

如何在python深拷贝的方法,我选择的是调用copy模块,并调用deepcopy()函数来实现,代码修改后如下:

运行结果如下:

bingo!!!,大家要一起继续加油哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值