range()類型返回給定起始整數(shù)到終止整數(shù)之間的不變數(shù)字序列。
range()構(gòu)造函數(shù)有兩種定義形式:
range(stop) range(start, stop[, step])
range()主要采用三個在兩個定義中具有相同用法的參數(shù):
start -整數(shù),從該整數(shù)開始返回整數(shù)序列
stop-要返回整數(shù)序列的整數(shù)。
整數(shù)范圍在第1個終止點結(jié)束。
step(可選) -整數(shù)值,該整數(shù)值確定序列中每個整數(shù)之間的增量
range()返回一個不可變的數(shù)字序列對象,具體取決于所使用的定義:
返回從0到stop-1的數(shù)字序列
如果stop為負數(shù)或0,則返回一個空序列。
返回值是通過以下公式在給定約束條件下計算的:
r[n] = start + step*n (for both positive and negative step) where, n >=0 and r[n] < stop (for positive step) where, n >= 0 and r[n] > stop (for negative step)
(如果沒有step)step默認為1。返回從start到stop-1結(jié)束的數(shù)字序列。
(如果step 為零)引發(fā)ValueError異常
(如果step非零)檢查值約束是否滿足,并根據(jù)公式返回序列。
如果不滿足值約束,則返回Empty 序列。
# 空 range print(list(range(0))) # 使用 range(stop) print(list(range(10))) # 使用 range(start, stop) print(list(range(1, 10)))
運行該程序時,輸出為:
[] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
注意:我們已經(jīng)將范圍轉(zhuǎn)換為Python列表,因為range()返回一個類似于生成器的對象,該對象僅按需打印輸出。
但是,范圍構(gòu)造函數(shù)返回的范圍對象也可以通過其索引訪問。它同時支持正負索引。
您可以按以下方式按索引訪問范圍對象:
rangeObject[index]
start = 2 stop = 14 step = 2 print(list(range(start, stop, step)))
運行該程序時,輸出為:
[2, 4, 6, 8, 10, 12]
start = 2 stop = -14 step = -2 print(list(range(start, stop, step))) # 不滿足值約束 print(list(range(start, 14, step)))
運行該程序時,輸出為:
[2, 0, -2, -4, -6, -8, -10, -12] []