Python 3.x中内置函数range()函数的用法

2017-02-07 董付国 Python小屋 Python小屋

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