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

pycharm\uff0cPython\u7248\u672c3.5\u4e2d\uff0c\u8f93\u5165range\uff085\uff09\uff0c\u4e3a\u4f55\u8f93\u51fa\u8fd8\u662frange\uff080,5\uff09\uff1f

range\u65b9\u6cd5\u8fd4\u56de\u7684\u662f\u53ef\u8fed\u4ee3\u5bf9\u8c61\uff0c\u4f46\u4e0d\u662flist\u5bf9\u8c61\uff0c\u6240\u4ee5\u4e0d\u80fd\u4ee5list\u65b9\u5f0f\u8f93\u51fa
\u6b63\u786e\u65b9\u6cd5\u662f\u5c06\u5b83\u8f6c\u6362\u4e3alist \uff1alist(range(5))
\u8fd9\u6837\u5b83\u5c31\u53d8\u6210list\u5bf9\u8c61\u4e86
print(list(range(5))) \u8f93\u51fa\u7ed3\u679c\u4e3a\uff1a[0,1,2,3,4]

\u5982\u679c\u4f60\u8fd9\u6837\u7f16
for i in range(1,5)
print(i)
else :
print('the for loop is over')
\u5b83\u8f93\u51fa\u7684\u5c31\u662f[1,2,3,4]\u4e86
\u53ef\u80fd2.0\u7248\u672c\u548c3.0\u7248\u672c\u4e0d\u5927\u4e00\u6837
\u8fd8\u6709\u5c31\u662f\u5efa\u8bae\u4f60\u53bb\u770b\u770b\u300abyte of python\u300b\u8fd9\u672c\u4e66

print("类型:",type(range(1,5)))
print(range.mro())

看结果:

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

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

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

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



因为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)


扩展阅读:python random ... python reversed ... python remove ... for in range循环 ... python range 6 1 1 ... all pages in range ... python for i inrange ... python continue ... python extend ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网