Page 15 - 程式語言與設計(下)
P. 15
όႧԊၾணࠇ (Python)
程式碼 範例程式檔名:5-2-2.py
01 for i in range(5):
02 print(i)
ίɪࠦٙόʕҢࡁԴ͜əᜊᅰ i Ը˾ڌӊɓϣ՟̈ٙᅰ࠽dί՟ʘܝఱл͜
print(i) Ҫ̴ΐΪԸdੂБഐ؈νɨj
執行結果
0
1
2
3
4
ɪࠦٙੂБഐ؈̙˸̈dΪމӚϞܸ֛ৎ࠽dΪϤᅰ࠽ึ 0 කdɓٜՑ
5 ٙۃɓࡈdɰఱ݊ί 4 ٙή˙৾˟dΌੂБə 5 ϣfɰΪމவᅵdί range() Ռό
ʕ̥ܸ֛ 1 ࡈ࠽ٙઋرɨdҢࡁɰ̙˸Ҫ̴Ъ݊ਸ਼ٙੂБϣᅰԸf
博士小提醒
嚴格地說,range() 函式它會產生一個數列的串列,此種資料結構在本書的第 6
章才會教到。但是,簡單地看,它透過數值參數的設定產生出了一組依序排列的數
字串,這些數字串的個數就決定了 for 迴圈的執行次數,而且在每一遍 for 迴圈的執
行中,都會依序取出 1 個數值放到索引變數中,方便進行資料存取所需要的計算作
業。
還有一個秘密是,range() 函式產生數字串的方法使用的是一個叫做 lazy
evaluation(惰性求值)的原則,也就是只有該數值被存取時才會即時進行運算,此
種方式可以避免在設定 range(1000000) 時,一開始就產生了一百萬個不一定會用得
到的數值,白白佔用了記憶體。
ν؈ί range() Ռόʕܸ֛ə 2 ࡈᅰοdԟఱ݊̍ўৎ࠽ʿ˟࠽d̴Զٙᅰο
ᇍఖνྡ 5-5 הͪf
圖 5-5 range(s,n) 函式提供之數字範圍示意圖
˸ɨٙόᇍԷܸ֛݊əৎ࠽ձ˟࠽ٙԷɿj
6
'$ όႧԊၾணࠇ 1ZUIPO $) JOEE ɨʹ