QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
53
查看: 141|回复: 19

[已解决]012讲的课后题

[复制链接]
最佳答案
0 

尚未签到

史莱克 发表于 2017-11-9 11:10:56 14119 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
第0题
>>> old = [1,2,3,4,5]
>>> new = old
>>> old = [6]
>>> print(new)
[1, 2, 3, 4, 5]
为什么会打印[1,2,3,4,5]

还有为什么打印出来是
>>> range(10)
range(0, 10)
而不是
>>>range(10)        # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
怎样打印出来

初学求讲解,谢谢!
最佳答案
2017-11-9 21:02:33
史莱克 发表于 2017-11-9 18:13
>> list(range(11))
Traceback (most recent call last):
  File "", line 1, in

扯淡。
重启一下idle。
楼层
跳转到指定楼层
最佳答案
208 
累计签到:160 天
连续签到:9 天
BngThea 发表于 2017-11-9 11:20:47 From FishC Mobile | 显示全部楼层
python中变量名只是一个标签,直接赋值只是给数据添加一个标签,所以其中一个标签变了不会影响另外一个
计数都是从0开始的而且只取到右边界减1的值
所以用range(11)就可以得到0-10的列表
最佳答案
26 
累计签到:825 天
连续签到:1 天
康小泡 发表于 2017-11-9 11:24:12 | 显示全部楼层
你的第一个问题
简单的说就是为什么你new=old后,再给old赋值,new和old不相等。
解释
old=[6]这一句相当于是重新给old分配了,对象已经改变了。但是new还是指向的是old原来的那个对象。
变通
如果你old改成
old.append(6)
你输入new的话,结果会是
[1,2,3,4,5,6]
这是因为对象没有被改变。所以两者结果会是相同的。

你的第二个问题没看懂你想问啥
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 11:34:49 | 显示全部楼层
康小泡 发表于 2017-11-9 11:24
你的第一个问题
简单的说就是为什么你new=old后,再给old赋值,new和old不相等。
解释

第一个明白了,
第二个 为什么>>> range(10)打印出来是
range(0, 10)
而不是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 11:35:24 | 显示全部楼层
BngThea 发表于 2017-11-9 11:20
python中变量名只是一个标签,直接赋值只是给数据添加一个标签,所以其中一个标签变了不会影响另外一个
计 ...

谢谢,我明白了!
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 11:41:18 | 显示全部楼层
BngThea 发表于 2017-11-9 11:20
python中变量名只是一个标签,直接赋值只是给数据添加一个标签,所以其中一个标签变了不会影响另外一个
计 ...

>>> range(11)
range(0, 11)
怎样才能出来的是一个列表
和版本有关系吗
我用的是3.7.0
最佳答案
208 
累计签到:160 天
连续签到:9 天
BngThea 发表于 2017-11-9 11:55:14 From FishC Mobile | 显示全部楼层
史莱克 发表于 2017-11-9 11:41
>>> range(11)
range(0, 11)
怎样才能出来的是一个列表

print(range(11))
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 12:21:05 | 显示全部楼层

>>> print(range(11))
range(0, 11)
最佳答案
208 
累计签到:160 天
连续签到:9 天
BngThea 发表于 2017-11-9 12:57:08 From FishC Mobile | 显示全部楼层
史莱克 发表于 2017-11-9 12:21
>>> print(range(11))
range(0, 11)

那试试a=range(11)
print(a)
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 13:00:53 | 显示全部楼层
BngThea 发表于 2017-11-9 12:57
那试试a=range(11)
print(a)

>>> a = range(11)
>>> print(a)
range(0, 11)
最佳答案
208 
累计签到:160 天
连续签到:9 天
BngThea 发表于 2017-11-9 13:03:49 From FishC Mobile | 显示全部楼层
史莱克 发表于 2017-11-9 13:00
>>> a = range(11)
>>> print(a)
range(0, 11)

看来需要进行一下强制转换
print(list(range(11)))
最佳答案
26 
累计签到:825 天
连续签到:1 天
康小泡 发表于 2017-11-9 14:18:32 | 显示全部楼层
史莱克 发表于 2017-11-9 11:34
第一个明白了,
第二个 为什么>>> range(10)打印出来是
range(0, 10)

版本问题,你list(range(10))就可以了。
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 17:36:38 | 显示全部楼层
康小泡 发表于 2017-11-9 14:18
版本问题,你list(range(10))就可以了。

>>> list(range(10))
Traceback (most recent call last):
  File "<pyshell#117>", line 1, in <module>
    list(range(10))
TypeError: 'list' object is not callable
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 17:37:12 | 显示全部楼层
BngThea 发表于 2017-11-9 13:03
看来需要进行一下强制转换
print(list(range(11)))

print(list(range(10)))
Traceback (most recent call last):
  File "<pyshell#114>", line 1, in <module>
    print(list(range(10)))
TypeError: 'list' object is not callable
最佳答案
277 
累计签到:262 天
连续签到:3 天
新手·ing 发表于 2017-11-9 17:57:03 | 显示全部楼层
史莱克 发表于 2017-11-9 11:41
>>> range(11)
range(0, 11)
怎样才能出来的是一个列表
  1. list(range(11))
复制代码
最佳答案
0 

尚未签到

史莱克  楼主| 发表于 2017-11-9 18:13:36 | 显示全部楼层

>> list(range(11))
Traceback (most recent call last):
  File "<pyshell#118>", line 1, in <module>
    list(range(11))
TypeError: 'list' object is not callable
>>> 我用的是3.7.0版本
最佳答案
26 
累计签到:825 天
连续签到:1 天
康小泡 发表于 2017-11-9 18:58:52 | 显示全部楼层
微信截图_20171109185820.png

完全没问题啊
最佳答案
1 
累计签到:9 天
连续签到:1 天
likuo 发表于 2017-11-9 19:37:48 | 显示全部楼层
range(10) 和range(0,10) 这俩其实是一个意思。range() 只是表示一个范围,你必须用其他命令才能返回值,比如 列表list(range(10)) 或者元组 tuple(range(10)) 下面这种也可以。
  1. a=range(10)
  2. for i in a:
  3.     print(i)
复制代码
最佳答案
277 
累计签到:262 天
连续签到:3 天
新手·ing 发表于 2017-11-9 21:02:33 | 显示全部楼层    本楼为最佳答案   
史莱克 发表于 2017-11-9 18:13
>> list(range(11))
Traceback (most recent call last):
  File "", line 1, in

扯淡。
重启一下idle。
最佳答案
0 
累计签到:27 天
连续签到:27 天
还是鱼头好 发表于 2017-11-10 21:58:02 | 显示全部楼层
康小泡 发表于 2017-11-9 11:24
你的第一个问题
简单的说就是为什么你new=old后,再给old赋值,new和old不相等。
解释

努力理解第一个问题……
感觉还是没太看懂,要回去再看下视频QAQ

发表回复

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

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-25 11:55

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