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

新手上路,请多包涵

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

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

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

提前致谢!

原文由 I. Wewib 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 867
2 个回答

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

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

原文由 Karin 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

 list(range(4))

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

 [0,1,2,3]

原文由 Joe D 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题