Python range函数
在Python 2中,有两个函数可让您生成整数序列range和xrange。 这些函数非常相似,主要区别在于range返回一个列表,xrange返回一个xrange对象。在本文中,我们将介绍Python 3 range类型的基础
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
结论
Python range
类型可让您生成整数序列。 它主要用于for
循环中。
如果您有任何问题或反馈,请随时发表评论。