鱼C论坛

 找回密码
 立即注册
查看: 2567|回复: 10

话说第12讲课后作业第一题

[复制链接]
发表于 2016-1-15 23:01:06 | 显示全部楼层 |阅读模式

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

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

x
题目是这样的

old = [1,2,3,4,5,6]

new = old

old = [6]

print(new)

请问会打印什么

窝天真的以为会打印:

[6]

因为在11讲的作业中详细解释了为什么在重新开辟一个与已有列表相同列表的时候必须要用分片方式赋值而不是直接赋值

那贼大?因为直接赋值的话python只会直接给同样的东西打上不同的标签,例如:

list1 = [1,2,3,4,5,6]

list2 = list1[:]

list3 = list1

如果对list1做一些修改,那么list3也会随之改变。

比如这样

>>> list1 = [1,2,3,4,5,6]

>>> list2 = list1[:]

>>> list3 = list1

>>> list1.sort(reverse = True)

>>> list1

[6, 5, 4, 3, 2, 1]

>>> list2

[1, 2, 3, 4, 5, 6]

>>> list3

[6, 5, 4, 3, 2, 1]

list3会随着list1的改变而改变

那么问题来了,既然答案不是   [6],那我合理的推测一下,是不是列表的方法(问题一:看视频里的意思是:name.XXXX就叫做name的XXXX方法?)
问题二:)对列表的操作才会同时影响存放在同一内存区域(只是有不同标签)的列表,而非方法操作的方式不会影响其他标签而会为这个标签开辟新的内存区域存放内容?

我都觉得这句话很晦涩,但是不好描述……希望小甲鱼能看明白。

其实我就是没看懂第十二讲作业的第一个题

------------------------
另外还有个无关紧要的问题三:如何清屏,类似matlab里那种clear命令。

一般都是用第三方ide写小程序,但是看视频学概念的时候经常会开shell跟着视频敲,因为验证简单概念很方便嘛,但是假如超过一整屏就只能在屏幕最下面操作看起来很费劲,我还是隐藏工具栏党成员,真的是很别扭,网上也找不到好的方法,只能关闭再打开,这个时候我超不想动手去够鼠标。

还有个问题四,比如像list,str这种内建函数,如果一不小心在shell里赋了值,如何恢复默认值。
顺便,附件里的图有一个是第九讲作业里瑕不掩瑜的小bug,把green打成了blue……其实也可以说是把blue写成了green……
第九课小bug.png
列表.png

评分

参与人数 2荣誉 +6 鱼币 +6 贡献 +3 收起 理由
小甲鱼 + 5 + 5 + 3 学得相当仔细!!
zooo + 1 + 1 楼主学的很仔细啊~

查看全部评分

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

使用道具 举报

 楼主| 发表于 2016-1-15 23:02:42 | 显示全部楼层
自己的沙发自己坐,感觉学到这就开始很费劲了啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-15 23:28:38 | 显示全部楼层
我的理解:
问题一:对所有列表的方法应该是一样的,类似与类的继承,你新定义了一个列表,就相当与继承了list父类的操作方法
问题二:我们定义list的数据归根到底是存在内存中的,list的名称只相当与指向它的指针,如果只是单独对名称赋值的话是不会影响原list的数据的(因为没有改变内存中的数据),你举的栗子中后面又对new赋值操作没有作用到原list中的数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-15 23:50:22 | 显示全部楼层
zooo 发表于 2016-1-15 23:28
我的理解:
问题一:对所有列表的方法应该是一样的,类似与类的继承,你新定义了一个列表,就相当与继承了 ...

问题一大概理解:父类的方法,都适用于创建的列表(有点像c里面的结构体啊)

问题二:其实我想表达的很简单,但是我语文真是负分啊。

如果list3 = list1,则表明list1的指针与list3的指针指在相同空间

对list1重新赋值

比如list1 = [6]

list1开辟了新的空间对吧

但是如果是list1.reverse()

list1的指针位置并没有变化,仅对该空间做了操作。

我大概明白了,我感觉我就是不太熟悉很多概念,多重复做作业很有好处啊,因为我之后那个帖子好蠢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-16 00:47:01 | 显示全部楼层
四十二 发表于 2016-1-15 23:50
问题一大概理解:父类的方法,都适用于创建的列表(有点像c里面的结构体啊)

问题二:其实我想表达的 ...

第三个:据我说知,IDLE 木有自带清屏功能

第四个:木有办法~~

解决第三、四问题的终极方案就是:重启 IDLE
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-16 00:53:46 | 显示全部楼层
小甲鱼 发表于 2016-1-16 00:47
第三个:据我说知,IDLE 木有自带清屏功能

第四个:木有办法~~

谢谢小甲鱼da☆ze~

真的很感谢,各个方面

而且我这种0基础(* ̄︶ ̄*)

好自卑,这个帖子的问题别人都说简单不给窝讲(哭)

做互联网教育的人都太伟大了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-16 06:55:16 | 显示全部楼层
你学的太认真了,好惭愧。我是赶着往后看,当时也注意到这个问题了,没细想
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-16 10:18:20 | 显示全部楼层
对于指针这块我的认识也很浅,还要多学习

idle清屏有一个帖子你可以看下
http://bbs.fishc.com/thread-45441-1-1.html

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3 哈哈,竟然有这插件~

查看全部评分

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

使用道具 举报

 楼主| 发表于 2016-1-16 12:12:11 | 显示全部楼层
本帖最后由 四十二 于 2016-1-16 12:19 编辑
zooo 发表于 2016-1-16 10:18
对于指针这块我的认识也很浅,还要多学习

idle清屏有一个帖子你可以看下

非常感谢,亲测可用~!

其实我一直觉得dx系的论坛搜索都不太好用的(++)

附上问题三的解决方法,懒人党头顶青天~
------------------------------------------------------------

首先下载clearwindow.py(点击可直接下载,不能下载的可以右键保存,格式为py结尾)
将这个文件放在Python X\Lib\idlelib目录下(X为你的python版本),然后在这个目录下找到config-extensions.def这个文件(idle扩展的配置文件),以记事本的方式打开它

打开config-extensions.def  后在句末加上这样几句:

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>



然后保存退出就可以了。

打开python的idle,看看options是不是多了一个选项clear shell window  ctrl+L
--------------------------------------------------------------------------------------------------
我只能说,叵费~!


不知道为什么添加不了链接:

http://bugs.python.org/file14303/ClearWindow.py
这个网页就是那个下载的链接,为了防止网页失效我把源码贴出来(如下),拷贝到记事本然后高扩展名为.py就行了,保存的名字就是ClearWindow.py


复制进来格式都乱掉了,还是不贴了唉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-19 19:04:43 | 显示全部楼层
只来看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-20 08:55:02 | 显示全部楼层
总结的还不错,学习就应该这样,多思考,多实践!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 06:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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