网站首页 > 基础教程 正文
对话实录
小白:(抓狂)我写了for i in range(5):,为什么只到 4?
专家:(推眼镜)range 是左闭右开区间!记住:包含起点,不包含终点!
基础用法三连击
1. 标准用法
# 生成0-4
print(list(range(5))) # → [0,1,2,3,4]
# 指定起点
print(list(range(2,6))) # → [2,3,4,5]
# 指定步长
print(list(range(1,10,2))) # → [1,3,5,7,9]
专家提醒:range 返回的是 range 对象,不是列表!
2. 负步长用法
# 倒序生成
print(list(range(5,0,-1))) # → [5,4,3,2,1]
# 实战案例:字符串反转
s = "hello"
print(''.join([s[i] for i in range(len(s)-1,-1,-1)])) # → "olleh"
实战案例
案例 1:生成索引
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
案例 2:创建等差数列
# 0到1之间10个点
points = [i/10 for i in range(11)]
print(points) # → [0.0,0.1,0.2,...,1.0]
案例 3:矩阵初始化
# 3x3矩阵
matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix) # → [[0,0,0],[0,0,0],[0,0,0]]
案例 4:进度条模拟
import time
for i in range(101):
print(f"\r进度:[{'#'*(i//2)}{' '*(50-i//2)}] {i}%", end="")
time.sleep(0.05)
四大血泪陷阱
空 range
# 错误示范
for i in range(5,2): # 不会报错,但不会执行
print(i)
# 正确做法
for i in range(5,2,-1):
print(i) # → 5 4 3
浮点数 range
# 错误示范
for i in range(0.1, 0.5, 0.1): # TypeError
print(i)
# 正确做法
from numpy import arange
for i in arange(0.1, 0.5, 0.1):
print(i) # → 0.1 0.2 0.3 0.4
大 range 内存问题
# 错误示范
nums = list(range(10**8)) # 内存爆炸!
# 正确做法
for i in range(10**8): # range对象是惰性的
process(i)
专家工具箱
1. range 属性检查
r = range(1,10,2)
print(r.start) # → 1
print(r.stop) # → 10
print(r.step) # → 2
2. range 切片操作
r = range(10)
print(r[2:5]) # → range(2,5)
print(r[::2]) # → range(0,10,2)
3. 自定义 range 类
class FloatRange:
def __init__(self, start, stop, step):
self.start = start
self.stop = stop
self.step = step
def __iter__(self):
current = self.start
while current < self.stop:
yield current
current += self.step
for f in FloatRange(0.1, 0.5, 0.1):
print(f) # → 0.1 0.2 0.3 0.4
小白:(献上膝盖)原来 range 这么强大!
专家:(扶起小白)记住:range 是 Python 的序列生成神器!
- 上一篇: python range基础介绍(python中range的作用)
- 下一篇:已经是最后一篇了
猜你喜欢
- 2025-06-13 python range基础介绍(python中range的作用)
- 2025-06-13 深入解析Python中的range()函数(python 中的range)
- 2025-06-13 Python 之 range函数(range函数的用法python)
- 2024-07-26 Python 内置函数速查手册(函数大全,带示例)
- 2024-07-26 Python学习教程:实操演示-enumrate和range对比及示例
- 2024-07-26 【Python3 高级内功心法】:深挖68个内置函数,释放语言潜能
- 2024-07-26 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法
- 2024-07-26 Python-第8弹之range()(python range()函数)
- 2024-07-26 列表是python中最基本的数据结构之一,它的常用方法有哪些?
- 2024-07-26 Python学习记录(21)——while循环
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)