range()是Python開發中非常常用的一個內置函數,語法格式為range([start,] end [, step] ),有range(stop)、range(start, stop)和range(start, stop, step)三種用法。該函數返回具有惰性求值特點的range對象,其中包含左閉右開區間[start,end)內以step為步長的整數。參數start默認為0,step默認為1。
>>> range(5) #start默認為0,step默認為1
range(0, 5)
>>> list(_)
[0, 1, 2, 3, 4]
>>> list(range(1, 10, 2)) #指定起始值和步長
[1, 3, 5, 7, 9]
>>> list(range(9, 0, -2)) #步長為負數時,start應比end大
[9, 7, 5, 3, 1]
>>> x, y, z = range(3) #支持序列解包
>>> print(x, y, z)
0 1 2
>>> x = [1, 2, 3, 4, 5, 6]
>>> x[::2] = range(3) #在切片中使用
>>> x
[0, 2, 1, 4, 2, 6]
在循環結構中經常使用range()函數來控制循環次數,例如:
>>> for i in range(4): #循環4次
print(3, end=' ')
3 3 3 3
當然,也可以使用range()函數來控制數值範圍,例如下面的程序片段可以用來輸出200以內能被17整除的最大正整數。
>>> for i in range(200, 0, -1):
if i%17 == 0:
print(i)
break
187