Python range类型通过定义范围的起点和终点来生成整数序列。 它通常与for循环一起使用,以迭代数字序列。

range()在Python 2和3中的工作方式有所不同。

在Python 2中,有两个函数可让您生成整数序列rangexrange。 这些函数非常相似,主要区别在于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为增量,从0stop - 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返回一个数字序列,从startstop - 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返回从startstop - 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。 否则,该序列为空。

如果step0,则会引发ValueError异常:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: range() arg 3 must not be zero

结论

Python range类型可让您生成整数序列。 它主要用于for循环中。

如果您有任何问题或反馈,请随时发表评论。