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