range

在前一小節的例子當中,我們使用了兩次 range 函式來產生資料型態為 range 的變數,是一種類似 list 的可迭代物件。

>>> a = range(1, 51)
>>> type(a)
<class 'range'>

接著我們試著觀察兩個range例子的共通點,range(2, n) 代表的是2~n-1的整數序列,range(1, 51) 則是1~50的整數序列,因此可以猜測,range 的第一個參數就是序列的起始值,第二個參數則是序列的結束值,但是本身不包含在內。 快接近了!不過其實 range 可以更為複雜,詳細的語法如下:

range(start, stop, step)
range(start, stop)
range(stop)
  • start: 代表序列的起始值
  • stop: 代表序列的結束值(不包含)
  • step: 代表序列的公差 比較特別的是,若公差為1時,step可以省略不寫(如第二行的寫法);又起始值為0時,start也可以省略不寫(如第三行的寫法)。 其中要特別注意,不可以沒有省略step參數卻想要省略start參數,也就是當range只吃了兩個參數時,就會默認第一個參數是start,第二個參數是stop。 以下提供更多例子讓大家明白 range 的用法:
print(list(range(1, 21, 2))) # 代表1~20(因為不包含21)內的奇數
print(list(range(20, 0, -2))) # 公差可以是負的!代表20~1(因為不包含0)內的偶數 
print(list(range(1, 21))) # 代表1~20(因為不包含21)的所有整數(省略公差即為1)
print(list(range(20))) # 代表0~19(因為不包含20)的所有整數(省略公差即為1,省略起始值即為0),常用來表示list的index,因為index從0開始。

results matching ""

    No results matching ""