Skip to content

Files

Latest commit

8b65768 · Jun 26, 2020

History

History
186 lines (131 loc) · 2.91 KB

45.md

File metadata and controls

186 lines (131 loc) · 2.91 KB

Python range()函数

原文: https://thepythonguru.com/python-builtin-functions/range/


于 2020 年 1 月 7 日更新


range()函数用于随时间生成一系列数字。 简单地说,它接受一个整数并返回一个范围对象(一种可迭代的类型)。 在 Python 2 中,range()返回一个list,它对处理大数据不是很有效。

range()函数的语法如下:

语法

range([start,] stop [, step]) -> range object
参数 描述
start (可选)序列的起点。 默认为0
stop(必填) 序列的端点。 该项目将不包括在序列中。
step(可选) 序列的步长。 默认为1

现在让我们看几个示例,以了解range()的工作方式:

示例 1

>>> 
>>> range(5)
range(0, 5)
>>> 
>>> list(range(5)) # list() call is not required in Python 2
[0, 1, 2, 3, 4]
>>>

试试看:

print(range(5))

# list() call is not required in Python 2 
print(list(range(5))) 

当使用单个参数调用range()时,它将生成从0到指定参数(但不包括它)的数字序列。 因此,序列中不包含数字5

示例 2

>>>
>>> range(5, 10)
range(5, 10)
>>> 
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>>

试一试:

print(range(5, 10))

print(list(range(5, 10))) 

在这里range()用两个参数510调用。 结果,它将生成从510(但不包括10)的数字序列。

您还可以指定负数:

>>> 
>>> list(range(-2, 2))
[-2, -1, 0, 1]
>>> 
>>> list(range(-100, -95))
[-100, -99, -98, -97, -96]
>>>

试一试:

print(list(range(-2, 2)))

print(list(range(-100, -95))) 

示例 3

>>> 
>>> range(1, 20, 3)
range(1, 20, 3)
>>> 
>>> 
>>> list(range(1, 20, 3))
[1, 4, 7, 10, 13, 16, 19]
>>>

试一试:

print( range(1, 20, 3))

print(list(range(1, 20, 3))) 

在这里range()函数被3step参数调用,因此它将每隔三个元素从1返回到20(当然不包括20)。

您也可以使用步骤参数来倒数。

>>> 
>>> list(range(20, 10, -1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
>>> 
>>> list(range(20, 10, -5))
[20, 15]
>>>

试一试:

print(list(range(20, 10, -1)))

print(list(range(20, 10, -5))) 

range()函数通常与for循环一起使用以重复执行一定次数的操作。 例如,在下面的清单中,我们使用range()执行循环主体 5 次。

>>> 
>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4
>>>

试一试:

for i in range(5):
    print(i) 

该代码在功能上等同于以下代码:

>>> 
>>> for i in [0, 1, 2, 3, 4]:
...     print(i)
... 
0
1
2
3
4
>>>

但是,在实际代码中,应始终使用range(),因为它简洁,灵活且性能更好。