1. Learn
  2. /
  3. 课程
  4. /
  5. Python 工具箱

Connected

道练习

遍历可迭代对象(2)

本章中您学到的一点是:并非所有可迭代对象都是"真正的"列表。我们看过的两个例子是字符串和 range() 函数。本练习将聚焦 range() 函数。

您可以在 for 循环中把 range() 当作要被遍历的列表来使用:

for i in range(5):
    print(i)

请回忆:range() 实际上并不会创建列表;它会创建一个带有迭代器的 range 对象,迭代器会按序产生值,直到达到上限(在示例中,直到值 4)。如果 range() 真去创建那个列表,那么用 \(10^{100}\) 这样的值来调用它可能就无法工作,尤其是因为这样巨大的数字可能会超出普通计算机的内存。\(10^{100}\) 实际上被称为一个 Googol(古戈尔数),即 1 后面跟着 100 个 0。这个数字非常巨大!

本练习的任务是证明:用 \(10^{100}\) 来调用 range() 并不会预先创建整个列表。

说明

100 XP
  • 使用函数 iter() 在 range(3) 上创建一个迭代器对象 small_value。
  • 使用 for 循环遍历 range(3),在每次迭代时打印该值。将 num 作为循环变量。
  • 在 range(10 ** 100) 上创建一个迭代器对象 googol。