遍歷可疊代物件(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))