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                                                                                   ɨʹ
   10   11   12   13   14   15   16   17   18   19   20