1029482962 发表于 2020-3-23 22:50:52

012python视频课后作业求教

>>> old =
>>> new = old
>>> old =
>>> print(new)

这个题目的答案是会打印:
请问是为什么呀? 不应该是打印6吗?
好像会跟着变吧?因为是new = old这个形式,而不是new=old[:]

sunrise085 发表于 2020-3-23 23:07:38

本帖最后由 sunrise085 于 2020-3-23 23:08 编辑

python定义变量就是贴标签,给该变量就是把标签撕下来贴到另一个上面去。
看图:


可以看看我总结的一个帖子:python细节之2、变量名与标签 变量的赋值与修改

小黎⑦ 发表于 2020-3-23 23:08:37

应该是因为old=这个语句意思是old赋予了一个新的数列,并没有影响到 这个原数列,所以new没有变化

jackz007 发表于 2020-3-23 23:11:43

>>> old =       # old 指向列表
>>> new = old                  # new 与 old 一起指向列表
>>> old =                   # old 指向列表 ,从此,old 与 new 分道扬镳
>>> print(new)               # new 依然指向列表

ba21 发表于 2020-3-23 23:12:09

用老师的说法来形容吧
old = # 上有个标签 old
new = old # new这个标签也贴在了 上
old = # # 把old便签贴在了 上

如果还不懂你把 看成苹果 , 看成橘子。最后你看标签在哪就对了。

闹闹YYY 发表于 2020-3-25 09:45:24

new是在old重新赋值之前被赋值的,所以在new = old之后,old再重新赋值,对之前的new不会发生影响
如果按你说的打印new也是,那么你就要在old=之后,再写一遍new=old
页: [1]
查看完整版本: 012python视频课后作业求教