pin_drop当前位置:知识文库 ❯ 图文
Python range()函数
概述
range() 是 Python 内置函数,用于生成一个整数序列。它常与 for 循环配合使用,控制循环次数。range() 返回的是一个可迭代对象,不会一次性生成所有数字,内存效率极高。
语法
代码示例
range(stop)
range(start, stop)
range(start, stop, step)基本用法
一个参数:range(stop)
代码示例
for i in range(5):
print(i, end=" ")输出:
代码示例
0 1 2 3 4两个参数:range(start, stop)
代码示例
for i in range(2, 7):
print(i, end=" ")输出:
代码示例
2 3 4 5 6三个参数:range(start, stop, step)
代码示例
for i in range(0, 10, 2):
print(i, end=" ")输出:
代码示例
0 2 4 6 8负步长
代码示例
for i in range(10, 0, -1):
print(i, end=" ")输出:
代码示例
10 9 8 7 6 5 4 3 2 1range 与列表对比
代码示例
r = range(1000000)
print(f"range 内存极小")
l = list(range(1000000))
print(f"list 占用大量内存")常见应用场景
重复执行N次
代码示例
for _ in range(3):
print("Hello!")生成索引序列
代码示例
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")倒序遍历
代码示例
for i in range(5, 0, -1):
print(i, end=" ")输出:
代码示例
5 4 3 2 1注意事项
⚠️ stop 不包含:
range(5)生成 0-4,不包含 5。
⚠️ 步长不能为零:
range(0, 5, 0)会抛出ValueError。
⚠️ 惰性求值:
range()不会立即生成所有数字,需要时才计算。
小结
-
range(stop):从 0 到 stop-1
-
range(start, stop):从 start 到 stop-1
-
range(start, stop, step):按步长生成
-
负步长:实现倒序,内存效率极高
练习题
练习1
使用 range() 生成 1 到 100 中所有能被 3 整除的数字列表。
练习2
使用 range() 和 for 循环,打印一个 5 行的等腰三角形星号图案。
常见问题
range()返回的是列表吗?
不是。range() 返回的是一个 range 对象,它是一个可迭代对象,不会一次性生成所有数字。可以通过 list() 将其转换为列表。
range() 的 stop 参数包含在内吗?
不包含。range(5) 生成的是 0、1、2、3、4,不包含 5。这是 Python 的设计惯例。
range() 比 list 更节省内存吗?
是的。range() 采用惰性求值,只在需要时计算数字,内存占用极小。而 list 会将所有元素存储在内存中。当需要大量数字时,range() 的内存优势非常明显。
可以用负步长实现倒序吗?
可以。使用负步长参数,如 range(10, 0, -1) 会生成 10、9、8、7、6、5、4、3、2、1。注意 start 要大于 stop。
range() 的步长可以为0吗?
不可以。步长为0会导致无限循环,Python 会抛出 ValueError 异常。步长必须是非零整数。
本文涉及AI创作
内容由AI创作,请仔细甄别