Python range() 内置函数

来自 Python 3 文档

range 实际上不是一个函数,而是一个不可变序列类型,如 Ranges and Sequence Types — list, tuple, range 中所述。

简介

range 类型通常用于 for 循环中以循环特定的次数。range 接受三个参数:startstopstep。每个参数必须是整数(内置的 int 或任何实现了 index() 特殊方法的对象)。

如果只有一个参数,它代表 stop 参数。如果完全省略了 step 参数,它将默认为 1。如果省略了 start 参数,它将默认为 0

Range 支持负数索引,但这被解释为从由正数索引确定的序列末尾开始索引。

***与常规的 listtuple 相比,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

指定了 startstop 参数的 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,其中 stopstep 参数为负数

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)

相关链接