python中range()函数的返回值是多少?

I. *_*wib 5 python range python-3.x python-3.5

我认为range()函数返回一个列表,其中包含放在括号内的参数.但是当我输入range(4)IDLE时,我得到range(0, 4)输出.同样,当我输入时print(range(4)),我也得到range(0, 4)输出.我目前正在使用python 3.5.

我目前正在使用以下电子书学习python:"如何像计算机科学家一样思考",在该电子书中,它们提供了可以运行python代码的活动代码块.当我print(range(4))在那里跑步时,我确实得到了我期望的列表,即[0, 1, 2, 3].

谁可以给我解释一下这个?

提前致谢!

Kar*_*rin 13

您正在阅读的书可能使用Python 2,其中range返回一个列表.

在Python 3中,range返回一个不可变的序列类型.


小智 6

您的书可能是使用Python 2.x编写的。在Python 2.x中,range函数实际上返回了for循环将迭代通过的列表。在Python 3.x中,范围函数是它自己的类型,实际上是生成器函数,因此在执行for循环时即时生成数字。

如果像这样将其传递到列表中,仍然可以从范围函数创建列表。

list(range(4))
Run Code Online (Sandbox Code Playgroud)

将输出包含以下内容的列表。

[0,1,2,3]
Run Code Online (Sandbox Code Playgroud)