Python range()
函式用法如下。
Python的range()
其實是Python內建的range
型別的建構式(constructor),用來表示不可變(immutable)的數字序列,例如[1,2,3,4,5]
。
range
型別的建構式為range(stop)
或range(start, stop[, step])
,傳入的參數必須為整數。
range(start, stop[, step])
的start
為序列的起始值(含);stop
為結束值(不含);step
為遞增值。
若省略start
參數則預設序列數字從0開始;
若省略step
則序列數字預設遞增值為1。
若用print()
印range
是以建構式的樣子來表示;
若要印出range
中所有的元素,可轉成list
。
r = range(5)
print(r) # range(5)
print(list(r)) # [0, 1, 2, 3, 4]
一些range
範例。
r1 = range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(r1) # range(10)
r2 = range(0, 10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(r2) # range(10)
r3 = range(0, 10, 1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(r3) # range(10)
r4 = range(0, 10, 2) # [0, 2, 4, 6, 8]
print(r4) # range(0, 10, 2)
r5 = range(5, 10, 2) # [5, 7, 9]
print(r5) # range(5, 10, 2)
range
也可以是遞減的,把step
值設為負數,例如:
r6 = range(0, -10, -1) # [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
print(r6) # range(0, -10, -1)
range
若stop
為0或start
的值遞增(減)前已超過stop
的值,則range
為空。
例如下面用len()
函式取得的每個range
長度皆為0。
r7 = range(0) # []
print(len(r7)) # 0
r8 = range(5, 0) # []
print(len(r8)) # 0
r9 = range(-5, 0, -1) # []
print(len(r9)) # 0
使用索引取出range
變數中的值,索引值從0起算。如果索引值超出range
的範圍,會發生IndexError: range object index out of range
錯誤。
r10 = range(2, 5, 1) . # [2, 3, 4]
print(r10[0]) # 2
print(r10[1]) # 3
print(r10[2]) # 4
print(r10[3]) # IndexError: range object index out of range
若要比較兩個range
變數是否相同,使用==
及!=
比較。
r11 = range(5) # [0, 1, 2, 3, 4]
r12 = range(5) # [0, 1, 2, 3, 4]
r13 = range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r14 = range(1, 6, 1) # [1, 2, 3, 4, 5]
print(r11 == r12) # true
print(r11 == r13) # false
print(r11 == r14) # false
range
通常與for
迴圈一起使用。
for i in range(0, 5, 1):
print(i)
印出如下:
0
1
2
3
4
沒有留言:
張貼留言