range()是Python生成整数序列的内置函数,返回range对象而非列表,支持三种调用形式:range(stop)、range(start, stop)、range(start, stop, step),常用于for循环控制次数或索引遍历,需注意stop不包含、step不能为0等细节。
range() 是 Python 中生成整数序列的内置函数,常配合 for 循环 使用,用来控制循环次数或遍历索引。它不直接生成列表(Python 3 中返回的是 range 对象),内存友好、效率高。
range() 有三种常用调用形式:
range(5) 生成 0, 1, 2, 3, 4。range(2, 7) 生成 2, 3, 4, 5, 6。range(0, 10, 2) 生成 0, 2, 4, 6, 8;range(5, 0, -1) 生成 5, 4, 3, 2, 1。range() 最典型用途是控制循环执行次数,或按索引访问序列元素:
for i in range(3): print("Hello") 输出 3 次。text = "abc"; for i in range(len(text)): print(i, text[i]) 输出索引和对应字符。for i in range(len(lst)-1, -1, -1): print(lst[i]) 从末尾向前取元素。使用 range() 配合 for 循环时,这些细节容易被忽略:
远不包含在序列中,类似切片规则。ValueError;step 为负时,start 必须大于 stop,否则得不到任何值。in、len()、索引(如 range(5)[2]),但不是列表,不能直接修改或追加。list(range(3)) → [0, 1, 2]。不是所有循环都需要 range():
for item in my_list: 比 for i in range(len(my_list)): 更 Pythonic。enumerate():for i, item in enumerate(my_list):。itertools.count() 或生成器。基本上就这些。掌握 range 的三种形式和边界行为,for 循环里的计数和索引操作就很少出错了。