開始使用免費開始

遍歷可疊代物件(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() 並不會真的預先建立清單。

本練習屬於課程

Python 工具箱

檢視課程

練習說明

  • 使用 iter()range(3) 轉成一個名為 small_value 的「疊代器」物件。
  • 使用 for 迴圈遍歷 range(3),每次迭代都印出值。請使用 num 作為迴圈變數。
  • 建立一個名為 googol 的「疊代器」物件,來源為 range(10 ** 100)

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Create an iterator for range(3): small_value
small_value = ____

# Print the values in small_value
print(next(small_value))
print(next(small_value))
print(next(small_value))

# Loop over range(3) and print the values



# Create an iterator for range(10 ** 100): googol
googol = ____

# Print the first 5 values from googol
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))
編輯並執行程式碼