鱼C论坛

 找回密码
 立即注册
查看: 5173|回复: 16

[已解决]零基础入门学习Python课后作业第3讲问题

[复制链接]
发表于 2017-3-29 11:28:34 | 显示全部楼层 |阅读模式

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

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

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

这里的myteacher,初始赋值为‘小甲鱼’,
后面又赋值为‘黑夜’,而且yourteacher = myteacher,
为什么最后的print(yourteacher),
出来的结果是‘小甲鱼’,而不是‘黑夜’呢?
最佳答案
2017-3-29 22:42:38
把小甲鱼和黑夜比喻成两个货物
myteacher和yourteacher比喻标签
>>> myteacher = '小甲鱼'                     把标签myteacher‘贴’在 '小甲鱼'上
>>> yourteacher = myteacher              把标签yourteacher‘贴’在贴着myteacher的货物——'小甲鱼'上
>>> myteacher = '黑夜'                        把标签myteacher 撕下贴在'黑夜' 上(标签myteacher还留在原处)
>>> print(yourteacher)                        打印贴着标签yourteacher的货物
不知道这样说你是不是会更好理解

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

使用道具 举报

发表于 2017-3-29 11:36:55 | 显示全部楼层
因为你在赋值给yourteacher的时候。你的myteacher的值为“小甲鱼”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2017-3-29 11:43:46 | 显示全部楼层
菜鸟唐 发表于 2017-3-29 11:36
因为你在赋值给yourteacher的时候。你的myteacher的值为“小甲鱼”

也就是说,如果已经赋值变量A = B,后面B的值再变化,对变量A的值不会产生任何影响吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-3-29 13:18:42 | 显示全部楼层
>>> myteacher = '小甲鱼' #试着当这行不存在
>>> yourteacher = myteacher #把myteacher看成‘小甲鱼’
>>> myteacher = '黑夜' #所以此时再给myteacher赋值不会影响上面
>>> print(yourteacher)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

 楼主| 发表于 2017-3-29 14:29:44 | 显示全部楼层
hongji 发表于 2017-3-29 13:18
>>> myteacher = '小甲鱼' #试着当这行不存在
>>> yourteacher = myteacher #把myteacher看成‘小甲鱼’
...

可以这么理解吗?
如果已经赋值变量A = 变量B,
即使后面变量B的值再怎么变化,也不会对变量A的值产生任何影响?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-29 14:30:24 | 显示全部楼层
同意4楼hongji的意见及回复方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-29 14:55:35 | 显示全部楼层
视频里面小甲鱼老师说了一句关键的话:右边的值赋给左边

>>> myteacher = '小甲鱼'        
# # #把“小甲鱼”这个值,赋值给变量“myteacher” # # #
>>> yourteacher = myteacher  
# # #把变量myteacher的值 赋值给变量“yourteacher”,而此时myteacher的值是“小甲鱼”,因此变量“yourteacher”的值也是“小甲鱼” # # #
>>> myteacher = '黑夜'   
# # #这一行没用,跟要打印的问题无关,变量yourteacher已经有值了 # # #
>>> print(yourteacher)
# # #所以打印变量yourteacher的值是 “小甲鱼”

我是这么理解的,不知是否说清楚了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-3-29 17:30:25 | 显示全部楼层
没上机 第一次想答案的时候想错了.   看了你们的解释, 明白多了

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

使用道具 举报

发表于 2017-3-29 22:42:38 | 显示全部楼层    本楼为最佳答案   
把小甲鱼和黑夜比喻成两个货物
myteacher和yourteacher比喻标签
>>> myteacher = '小甲鱼'                     把标签myteacher‘贴’在 '小甲鱼'上
>>> yourteacher = myteacher              把标签yourteacher‘贴’在贴着myteacher的货物——'小甲鱼'上
>>> myteacher = '黑夜'                        把标签myteacher 撕下贴在'黑夜' 上(标签myteacher还留在原处)
>>> print(yourteacher)                        打印贴着标签yourteacher的货物
不知道这样说你是不是会更好理解

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

使用道具 举报

发表于 2017-3-30 09:04:27 | 显示全部楼层

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

其实我们可以这样理解.赋值是有顺序的,最后一句话打印的是yourteacher....这个时候我们看前两句,yourteacher=myteacher=小甲鱼..这个时候yourteacher就是小甲鱼..现在myteacher=黑夜了..但是yourteacher没变,因为没有执行yourteacher=myteacher....所以还是小甲鱼...

或者你可以这样理解...最后一句print调用的是yourteacher...第三句和yourteacher没有关系...所以可以直接忽略第三句赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-3-30 09:05:36 | 显示全部楼层
Aifrincoo 发表于 2017-3-29 22:42
把小甲鱼和黑夜比喻成两个货物
myteacher和yourteacher比喻标签
>>> myteacher = '小甲鱼'               ...

这样说,确实好理解了,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-30 09:14:59 | 显示全部楼层
我再举个例子
a=1
b=a
c=b
d=c
a=18
print(b)
b就是1
我们调用的b..是不是后面你不管c=b 或者d=c甚至是a=18..那都是再b=a后面出现的,,,跟前面的赋值没有关系,,,所以只要后面没有对b重新赋值..就完全可以忽略...至少在第二行的时候b就是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-3-30 09:18:04 | 显示全部楼层
nuoyayuanzhou 发表于 2017-3-30 09:14
我再举个例子
a=1
b=a

“只要后面没有对b重新赋值,就完全可以忽略。”这句话很关键,谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-30 09:19:06 | 显示全部楼层
陈芷韩 发表于 2017-3-29 14:29
可以这么理解吗?
如果已经赋值变量A = 变量B,
即使后面变量B的值再怎么变化,也不会对变量A的值产生 ...

大部分情况下..可以这样理解...也有一些特殊情况.以后会学..
A要怎么变...需要给A赋值才对...跟变量B..没有任何关系...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-14 23:30:27 | 显示全部楼层
请问如何自动对B进行进行A的赋值呢?而不是每次都在A变化后更新B?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-4 11:21:32 | 显示全部楼层
很棒棒 表述的很清晰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-14 09:20:31 | 显示全部楼层
就相当于有a,b两个数,a=1,b,把a的值赋给b,b的值就是1,后面只要没有新的值赋给b,输出b,b的值就是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 01:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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