python 的range()函数怎么使用,为什么单独运行print(range(1,5))输出还是range(1,5),而不是[1,2,3,4]

 我来答
神犹在
2018-09-29 · TA获得超过3629个赞
知道小有建树答主
回答量:656
采纳率:66%
帮助的人:134万
展开全部
print("类型:",type(range(1,5)))
print(range.mro())

看结果:

这里的range()函数所返回的对象在python3中并不是list类型的,也不继承list类型。

python3中的range()等于python2中的xrange(),它其实是一个生成器,每次取值后生成下一个值,目的是节约内存和运算资源。

如果想得到list,则需强制转换。

print(list(range(1,5)))

就爱纯净水520
2018-09-29 · TA获得超过262个赞
知道小有建树答主
回答量:115
采纳率:68%
帮助的人:19.9万
展开全部

因为range()函数返回的是生成器对象

生成器对象直接打印出不来内容,只会返回对象信息

想要看生成器具体会产生什么,两个方法:

for循环遍历生成器,或者用list,tuple转换

对所有生成器都适用。

>>> a = range(5)
>>> a
range(0, 5)
>>> isinstance(a, range)
True
>>> for i in a:
...     print(i)
...
0
1
2
3
4
>>> a
range(0, 5)
>>> list(a)
[0, 1, 2, 3, 4]
>>> tuple(a)
(0, 1, 2, 3, 4)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式