Python range() 内置函数
来自 Python 3 文档
range 实际上不是一个函数,而是一个不可变序列类型,如 Ranges and Sequence Types — list, tuple, range 中所述。
简介
range 类型通常用于 for 循环中以循环特定的次数。range 接受三个参数:start、stop 和 step。每个参数必须是整数(内置的 int 或任何实现了 index() 特殊方法的对象)。
如果只有一个参数,它代表 stop 参数。如果完全省略了 step 参数,它将默认为 1。如果省略了 start 参数,它将默认为 0。
Range 支持负数索引,但这被解释为从由正数索引确定的序列末尾开始索引。
***与常规的 list 或 tuple 相比,range 类型的优势在于,无论它表示的范围有多大,range 对象始终占用相同的(较小的)内存量。
输入参数
Range 实现所有常见的序列操作,但不包括连接和重复(因为 range 对象只能表示遵循严格模式的序列,而重复和连接通常会违反该模式)。
start:
- start 参数的值
- 如果未提供,参数将默认为 0
- 参数值是包含的
stop
- stop 参数的值
- 唯一必需的参数
- 参数值是不包含的
step
- step 参数的值
- 如果未提供,参数将默认为 1
示例
仅指定 stop 参数的 Range
for i in range(5):
print(i)
0
1
2
3
4
指定了 start 和 stop 参数的 Range
for i in range(1, 8):
print(i)
1
2
3
4
5
6
7
指定了所有参数的 Range
for i in range(0, 30, 5):
print(i)
0
5
10
15
20
25
指定了所有参数的 Range,其中 stop 参数不能被 step 参数整除
for i in range(0, 10, 3):
print(i)
0
3
6
9
指定了所有参数的 Range,其中 stop 和 step 参数为负数
for i in range(0, -6, -1):
print(i)
0
-1
-2
-3
-4
-5
stop 参数设置为 0 的两个示例
for i in range(0):
print(i)
(no output)
for i in range(1, 0):
print(i)
(no output)