鱼C论坛

 找回密码
 立即注册
查看: 2914|回复: 21

[已解决]第二讲第二题问题

[复制链接]
发表于 2020-5-24 21:56:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)

这道题能不能请大神给我讲解一下
第二句yourteacher指向的是 myteacher  第三句myteacher已经变成了黑夜 为什么输出yourteacher还是小甲鱼
最佳答案
2020-5-24 22:31:00
zhongduannimei 发表于 2020-5-24 22:24
我按照你的代码查了他们的地址是一样的 地址一样为什么值不一样  就是像你说的因为给他们赋值的是字符串 ...

地址一样 值就一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-24 21:57:10 | 显示全部楼层
和贴标签一样,你把myteacher的标签撕了下来,贴到了 '黑夜'上,这时候它和yourteacher已经没有任何关系了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-24 21:58:35 | 显示全部楼层
是不是yourteacher随着myteacher变化  不是yourteacher一直指向myteacher吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 21:59:05 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 21:58
是不是yourteacher随着myteacher变化  不是yourteacher一直指向myteacher吗
yourteacher随着myteacher变化
不是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 21:59:28 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 21:58
是不是yourteacher随着myteacher变化  不是yourteacher一直指向myteacher吗

1,请回复我,不然我看不见
2,不是的,把标签撕了下来,就和原来的yourteacher没有关系了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 21:59:33 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 21:58
是不是yourteacher随着myteacher变化  不是yourteacher一直指向myteacher吗

不是ourteacher随着myteacher变化  

是因为他们的源头都是 小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:00:53 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 21:58
是不是yourteacher随着myteacher变化  不是yourteacher一直指向myteacher吗


他们都指向 小甲鱼
记住 不可变类型(如 字符串 number类 tuple)的赋值 都会一定覆盖原来有的值  可变类型的不一定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-24 22:06:50 | 显示全部楼层
qiuyouzhi 发表于 2020-5-24 21:59
1,请回复我,不然我看不见
2,不是的,把标签撕了下来,就和原来的yourteacher没有关系了

1好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:07:12 | 显示全部楼层
本帖最后由 柿子饼同学 于 2020-5-24 22:10 编辑

我们可以把myteacher=小甲鱼和yourteacher=黑夜放在一起,这时你写yourteacher=myteacher,所以黑夜就是小甲鱼,=是个赋值运算符。因为yourteacher在前,所以黑夜就变成小甲鱼了,但如果myteacher在前,那小甲鱼就是黑夜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:10:41 | 显示全部楼层
你可以用Python 内置函数 id() 来查询他们的地址   
myteacher = '小甲鱼'
yourteacher = myteacher
print(id(myteacher))
print(id(yourteacher))
他们地址一样,只要源头发生改变 所有指向同个地址的都会一起改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-24 22:11:31 | 显示全部楼层
Twilight6 发表于 2020-5-24 22:00
他们都指向 小甲鱼
记住 不可变类型(如 字符串 number类 tuple)的赋值 都会一定覆盖原来有的值  可变 ...

所以 如果yourteacher=myteacher  mytecher是一个可变类型  yourther就会随时和myteacher 相同吗

评分

参与人数 1鱼币 +3 收起 理由
Twilight6 + 3 抱歉 我评论频繁了 回帖你看不见了

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:15:01 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-24 22:16 编辑
zhongduannimei 发表于 2020-5-24 22:11
所以 如果yourteacher=myteacher  mytecher是一个可变类型  yourther就会随时和myteacher 相同吗

yourteacher=myteacher
不是重新赋值,这个实际上是叫做 再次取个别名
原本 mytecher 就是给 小甲鱼取的别名  你重新在 yourteacher=myteacher 等于是再给小甲鱼取了个 yourteacher的别名

别名不了解的话 就说外号吧,把他当作外号来理解 ,一个人能有很多外号,但是都是那个人,那个人今天变帅了 外号都是和他关联的 也都变帅了
如果这样赋值:
mytecher = '小猪猪'
这样就会改变mytecher 的地址,而youteacher 还是指向小甲鱼那个地址 所有不会改变~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-24 22:24:06 | 显示全部楼层
Twilight6 发表于 2020-5-24 22:10
你可以用Python 内置函数 id() 来查询他们的地址   

他们地址一样,只要源头发生改变 所有指向同个地址 ...

我按照你的代码查了他们的地址是一样的 地址一样为什么值不一样  就是像你说的因为给他们赋值的是字符串是不可变类型 所以他们呢输出不一样吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-24 22:27:04 | 显示全部楼层
Twilight6 发表于 2020-5-24 22:10
你可以用Python 内置函数 id() 来查询他们的地址   

他们地址一样,只要源头发生改变 所有指向同个地址 ...

我是新鱼友  等级不够加不了好友
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:31:00 | 显示全部楼层    本楼为最佳答案   
zhongduannimei 发表于 2020-5-24 22:24
我按照你的代码查了他们的地址是一样的 地址一样为什么值不一样  就是像你说的因为给他们赋值的是字符串 ...

地址一样 值就一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 22:32:10 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 22:24
我按照你的代码查了他们的地址是一样的 地址一样为什么值不一样  就是像你说的因为给他们赋值的是字符串 ...

1231.png
地址相同 值就相同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-24 22:50:28 | 显示全部楼层
Twilight6 发表于 2020-5-24 22:31
地址一样 值就一样


>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)
这时候myteacher和yourteacher地址不同了
是不是意味着对myteacher赋值改变了myteacher的地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-24 23:15:08 | 显示全部楼层
zhongduannimei 发表于 2020-5-24 22:50
>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'

对的  就是把这个外号给另一个人了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-25 18:06:22 | 显示全部楼层
Twilight6 发表于 2020-5-24 23:15
对的  就是把这个外号给另一个人了

明白了 谢谢大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 18:10:42 | 显示全部楼层

别我不是大大声 QAQ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 17:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表