# Python range

## 定义

`range(start, stop, step)` 表示从`start`开始、按`step`递增或递减的整数序列，**不包含**`stop`。省略`start`时起点为`0`；省略`step`时步长为`1`；步长不能为零。

`range`对象不是列表，它以紧凑的方式表示序列，需要列表时可以调用`list(range(...))`。步长的方向与起终点不匹配时，结果为空。

## 例子

`list(range(1, 6, 2))` 得到 `[1, 3, 5]`；`list(range(5, 0, -2))` 得到 `[5, 3, 1]`。

## 交互探索

改变起点、终点和步长，检查终点是否被包含以及何时得到空序列。

交互演示：\`range\`会产生哪些整数？。改变起点、终点和步长，查看半开区间产生的整数。 请在站点操作演示。

## 练习

1. `list(range(1, 6, 2))` 的结果是：

   * A.  `[1, 3, 5]`
   * B.  `[1, 2, 3, 4, 5]`
   * C.  `[1, 3, 5, 7]`
   * D.  `[2, 4, 6]`

   答案：A

   从`1`开始，到`6`之前，步长`2`，取`1, 3, 5`。
