Python range函数
May 26, 2022
Python range类型通过定义范围的起点和终点来生成整数序列。 它通常与for循环一起使用,以迭代数字序列。
range()在Python 2和3中的工作方式有所不同。
在Python 2中,有两个函数可让您生成整数序列range和xrange。 这些函数非常相似,主要区别在于range返回一个列表,xrange返回一个xrange对象。
在Python 3中,xrange函数已被删除,range函数的行为与Python 2 xrange类似。 Python 3 range不是函数,而是代表不可变数字序列的类型。
在本文中,我们将介绍Python 3 range类型的基础。 Python range()语法
range构造函数采用以下形式:
range(stop) range(start, stop[, step])
提供给range构造函数的参数必须为整数。 不允许使用浮点数和其他类型。
range接受一个必需参数和两个可选参数。 它返回一个代表给定范围的范围对象,并根据需要生成数字。 Python range(stop)
当只给出一个自变量时,range返回一个数字序列,以1为增量,从0到stop - 1。
以下是作用范围类型:
for i in range(5): print(i)
生成的数字序列从0开始,以4(5-1)结尾:
0 1 2 3 4
如果参数为0或负整数range,则返回空序列:
print(list(range(-5)))
我们正在将range对象转换为列表,因为range对整数序列进行了惰性计算。 输出为空列表:
[]
Python range(start, stop)
提供两个参数时,range返回一个数字序列,从start到stop - 1,以1为增量。
以下是示例:
for i in range(3, 5): print(i)
3 4
stop参数必须大于start。 否则,该序列为空:
print(list(range(5, 3)))
[]
您可以使用0,正整数和负整数作为参数:
print(list(range(-5, -3)))
[-5, -4]
print(list(range(-3, 0)))
[-3, -2, -1]
Python range(start, stop, step)
给出三个自变量后,range返回从start到stop - 1的数字序列,以step递增或递减。
如果step为正,则range返回递增的序列:
for i in range(0, 26, 5): print(i)
0 5 10 15 20 25
递增时,stop参数必须大于start。 否则,序列为空。
如果step为负,则range返回一个递减的序列:
for i in range(20, 4, -5): print(i)
20 15 10 5
递减时,stop参数必须小于start。 否则,该序列为空。
如果step为0,则会引发ValueError异常:
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: range() arg 3 must not be zero