Python 的内置函数 range
Python 内建函数列表 > Python 的内置函数 range
Python的内置函数range详解
range()
是Python中一个非常实用的内置函数,主要用于生成一个不可变的整数序列。它在循环和迭代操作中应用广泛。
基本语法
range()
函数有三种调用方式:
range(stop)
:生成从0开始到stop-1的整数序列range(start, stop)
:生成从start开始到stop-1的整数序列range(start, stop, step)
:生成从start开始到stop-1的整数序列,步长为step
详细说明
参数特点
- start:序列的起始值(包含),默认为0
- stop:序列的结束值(不包含)
- step:步长(可以为正数或负数),默认为1
返回值
range()
函数返回的是一个range
对象,而不是列表。这个对象是惰性求值的,只有在需要时才计算值。如果需要列表,可以用list()
转换:
numbers = list(range(5)) # [0, 1, 2, 3, 4]
示例应用
基础示例
# 生成0-4的序列
for i in range(5):print(i) # 输出: 0 1 2 3 4# 生成2-5的序列
for i in range(2, 6):print(i) # 输出: 2 3 4 5# 生成0-10的偶数序列
for i in range(0, 11, 2):print(i) # 输出: 0 2 4 6 8 10# 反向序列
for i in range(5, 0, -1):print(i) # 输出: 5 4 3 2 1
实际应用场景
- 循环固定次数:
for _ in range(3):print("Hello") # 打印3次Hello
- 列表索引遍历:
fruits = ['apple', 'banana', 'cherry']
for i in range(len(fruits)):print(f"Index {i}: {fruits[i]}")
- 数学运算序列:
squares = [x**2 for x in range(10)] # 生成0-9的平方列表
- 时间序列生成:
hours = list(range(0, 24, 3)) # [0, 3, 6, 9, 12, 15, 18, 21]
注意事项
range()
生成的序列不包含结束值- 步长不能为0,否则会引发
ValueError
- 对于负步长,start应该大于stop
range
对象支持索引、切片等操作,但不支持修改- 相比直接生成列表,
range()
更节省内存,特别是处理大范围时
性能优势
range()
相比直接生成列表的优势在于:
- 内存效率高:只存储start、stop和step值,不存储完整序列
- 计算效率高:只在需要时才计算当前值
- 支持无限序列(理论上):虽然实际受限于系统资源
在Python 3中,range()
的这种"惰性"特性使其成为处理大范围数字序列的理想选择。