鱼C论坛

 找回密码
 立即注册
查看: 2796|回复: 6

第三课的练习题疑问,请求解答

[复制链接]
发表于 2016-12-29 00:24:50 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜" #这里不是重新给myteacher赋值了黑夜吗?
>>> print(yourteacher)
为什么这里打印出来是 小甲鱼呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-29 01:19:37 | 显示全部楼层
因为打印的是yourteacher而不是myteacher。

评分

参与人数 1荣誉 +2 收起 理由
fkthhnet + 2 谢谢

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-29 09:28:10 | 显示全部楼层
  1. myteacher='fichc'
  2. youteacher=myteacher
  3. print(id(myteacher),id(youteacher))
  4. print(myteacher,youteacher)
  5. myteacher='无符号整形'
  6. print(id(myteacher),id(youteacher))
  7. print(myteacher,youteacher)

  8. output:
  9. 1868029281592 1868029281592
  10. fichc fichc
  11. 1868029123024 1868029281592
  12. 无符号整形 fichc
复制代码


注意给myteacher重新赋值之后,这个对象的id就已经变了,而youteacher的id还是原来的

评分

参与人数 1荣誉 +5 收起 理由
fkthhnet + 5 谢谢,明白了。

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-29 10:49:21 | 显示全部楼层
本帖最后由 nine 于 2016-12-29 11:29 编辑

看了这个问题,我回答的时候以为懂了,才发现原来深藏玄机。(遂在网上找来相关资料延伸)
Python 的数据类型和C不一样,有一种类型:可变类型 (mutable)和不可变类型(immutable)

Python中所有变量都是值的引用,也就说变量通过绑定的方式指向其值。 而这里说的不可变指的是值的不可变。 对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收。
不可变类型包括:int string float tuple
可变类型包括:list dict

假使(1)
>>> myteacher = ['小甲鱼']
>>> yourteacher = myteacher
>>> yourteacher.append('黑夜')  #append为添加'黑夜'
>>> print(myteacher)
输出为啥?
1、['小甲鱼']  2、['小甲鱼', '黑夜'] 3、['黑夜']

(2)
>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> yourteacher = '黑夜'
>>> print(myteacher)
输出为啥?
1、小甲鱼  2、小甲鱼  黑夜 3、黑夜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-29 10:51:05 | 显示全部楼层
本帖最后由 nine 于 2016-12-29 11:29 编辑
nine 发表于 2016-12-29 10:49
看了这个问题,我回答的时候以为懂了,才发现原来深藏玄机。(遂在网上找来相关资料延伸)
Python 的数据 ...


答案(1)是 ['小甲鱼', '黑夜']。 答案(2)是  小甲鱼
以下是网上找到的系统理论:
http://www.360doc.com/content/16/0923/08/1317564_592951626.shtml
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-29 15:23:32 | 显示全部楼层
nine 发表于 2016-12-29 10:51
答案(1)是 ['小甲鱼', '黑夜']。 答案(2)是  小甲鱼
以下是网上找到的系统理论:
http://www.36 ...

看到你的这个吓的我都不敢回复了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-31 11:43:51 | 显示全部楼层
nine 发表于 2016-12-29 10:49
看了这个问题,我回答的时候以为懂了,才发现原来深藏玄机。(遂在网上找来相关资料延伸)
Python 的数据 ...

....厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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