# Python `range()`函数
> 原文: [https://thepythonguru.com/python-builtin-functions/range/](https://thepythonguru.com/python-builtin-functions/range/)
* * *
于 2020 年 1 月 7 日更新
* * *
`range()`函数用于随时间生成一系列数字。 简单地说,它接受一个整数并返回一个范围对象(一种可迭代的类型)。 在 Python 2 中,`range()`返回一个`list`,它对处理大数据不是很有效。
`range()`函数的语法如下:
**语法**:
```py
range([start,] stop [, step]) -> range object
```
| 参数 | 描述 |
| --- | --- |
| `start` | (可选)序列的起点。 默认为`0`。 |
| `stop`(必填) | 序列的端点。 该项目将不包括在序列中。 |
| `step`(可选) | 序列的步长。 默认为`1`。 |
现在让我们看几个示例,以了解`range()`的工作方式:
**示例 1**:
```py
>>>
>>> range(5)
range(0, 5)
>>>
>>> list(range(5)) # list() call is not required in Python 2
[0, 1, 2, 3, 4]
>>>
```
试试看:
```py
print(range(5))
# list() call is not required in Python 2
print(list(range(5)))
```
当使用单个参数调用`range()`时,它将生成从`0`到指定参数(但不包括它)的数字序列。 因此,序列中不包含数字`5`。
**示例 2**:
```py
>>>
>>> range(5, 10)
range(5, 10)
>>>
>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>>
```
试一试:
```py
print(range(5, 10))
print(list(range(5, 10)))
```
在这里`range()`用两个参数`5`和`10`调用。 结果,它将生成从`5`到`10`(但不包括`10`)的数字序列。
您还可以指定负数:
```py
>>>
>>> list(range(-2, 2))
[-2, -1, 0, 1]
>>>
>>> list(range(-100, -95))
[-100, -99, -98, -97, -96]
>>>
```
试一试:
```py
print(list(range(-2, 2)))
print(list(range(-100, -95)))
```
**示例 3**:
```py
>>>
>>> range(1, 20, 3)
range(1, 20, 3)
>>>
>>>
>>> list(range(1, 20, 3))
[1, 4, 7, 10, 13, 16, 19]
>>>
```
试一试:
```py
print( range(1, 20, 3))
print(list(range(1, 20, 3)))
```
在这里`range()`函数被`3`的`step`参数调用,因此它将每隔三个元素从`1`返回到`20`(当然不包括`20`)。
您也可以使用步骤参数来倒数。
```py
>>>
>>> list(range(20, 10, -1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
>>>
>>> list(range(20, 10, -5))
[20, 15]
>>>
```
试一试:
```py
print(list(range(20, 10, -1)))
print(list(range(20, 10, -5)))
```
`range()`函数通常与`for`循环一起使用以重复执行一定次数的操作。 例如,在下面的清单中,我们使用`range()`执行循环主体 5 次。
```py
>>>
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>>
```
试一试:
```py
for i in range(5):
print(i)
```
该代码在功能上等同于以下代码:
```py
>>>
>>> for i in [0, 1, 2, 3, 4]:
... print(i)
...
0
1
2
3
4
>>>
```
但是,在实际代码中,应始终使用`range()`,因为它简洁,灵活且性能更好。
* * *
* * *
- 初级 Python
- python 入门
- 安装 Python3
- 运行 python 程序
- 数据类型和变量
- Python 数字
- Python 字符串
- Python 列表
- Python 字典
- Python 元组
- 数据类型转换
- Python 控制语句
- Python 函数
- Python 循环
- Python 数学函数
- Python 生成随机数
- Python 文件处理
- Python 对象和类
- Python 运算符重载
- Python 继承与多态
- Python 异常处理
- Python 模块
- 高级 Python
- Python *args和**kwargs
- Python 生成器
- Python 正则表达式
- 使用 PIP 在 python 中安装包
- Python virtualenv指南
- Python 递归函数
- __name__ == "__main__"是什么?
- Python Lambda 函数
- Python 字符串格式化
- Python 内置函数和方法
- Python abs()函数
- Python bin()函数
- Python id()函数
- Python map()函数
- Python zip()函数
- Python filter()函数
- Python reduce()函数
- Python sorted()函数
- Python enumerate()函数
- Python reversed()函数
- Python range()函数
- Python sum()函数
- Python max()函数
- Python min()函数
- Python eval()函数
- Python len()函数
- Python ord()函数
- Python chr()函数
- Python any()函数
- Python all()函数
- Python globals()函数
- Python locals()函数
- 数据库访问
- 安装 Python MySQLdb
- 连接到数据库
- MySQLdb 获取结果
- 插入行
- 处理错误
- 使用fetchone()和fetchmany()获取记录
- 常见做法
- Python:如何读取和写入文件
- Python:如何读取和写入 CSV 文件
- 用 Python 读写 JSON
- 用 Python 转储对象