# 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 轉儲對象