Python – for in & range class

測試環境為 CentOS 8 x86_64 (虛擬機)

[root@localhost ~]# python3
Python 3.6.8 (default, Mar 25 2022, 11:15:52)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-10)] on linux
Type "help", "copyright", "credits" or "license" for more information.

開始學習 Python For 迴圈時,我看不懂以下的範例(程式須注意縮排,建議使用4個空白字元).

>>> for i in range(1,4):
...     print(i)
...
1
2
3

不懂 range() 是? ,查了一下它是 Python 的內建型別 – https://docs.python.org/zh-tw/3.11/library/functions.html

下面我們來看一下 range 型別的用法 – https://docs.python.org/3.11/library/stdtypes.html#ranges .
其 Range 公式為:

r[i] = start + step*i where i >= 0 and r[i] < stop.

Range 依據參數有以下 2 種使用方式.

  • class range(stop)
    range 可以只使用一個傳入參數 stop ,其他都使用預設值(start =1 與 step =1) .
    下面範例使用 Python 內建型別 list 顯示資料內容.

    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    依前面 Range 公式不會產生任何數字陣列.

    list(range(0))
    []
    
  • class range(start, stop[, step])
    當 range 傳入 2個參數分別為 start 與 stop ,沒指定 step 時其預設值為 1.

    >>> list(range(1, 11))
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

    當 range 傳入 3個參數分別為 start , stop 與 step .依前面 Range 公式可以得到以下數字.

    list(range(0, 30, 5))
    [0, 5, 10, 15, 20, 25]
    

    這次改為 (-) 負值.

    list(range(0, -10, -1))
    [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
    

回到前面 Python For 迴圈範例這樣就完全懂了.

>>> for i in range(1,4):
...     print(i)
...
1
2
3

上面範例就等於下面這樣.

>>> for i in [1 , 2 , 3 , 4 ]:
...     print(i)
...
1
2
3
4
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料