网站首页 > 技术文章 正文
对话实录
小白:(抓狂)我写了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 的序列生成神器!
猜你喜欢
- 2025-07-17 什么是Python列表(python列表有什么用)
- 2025-07-17 我用Cursor+Claude 4 ,44句对话做了个微信小游戏,附全部提示词
- 2025-07-17 深入了解Python列表的高级用法(python列表常用的五种方法)
- 2025-07-17 Python操作Excel库xlrd与xlwt常用操作详解
- 2025-07-17 Python中冷门但非常好用的内置函数
- 2025-07-17 Python教程(9)——Python变量类型列表list的用法介绍
- 2025-07-17 如何做好 Web 自定义排序产品设计?
- 2025-07-17 Python:Django的ListView超详细用法(含分页paginate功能)
- 2025-07-17 小疯谈python:(四)数据类型之序列类型(上)
- 2025-07-17 Python循环秘技!90%新手不知道的7个for用法,第3个绝了!
- 279℃Python短文,Python中的嵌套条件语句(六)
- 277℃python笔记:for循环嵌套。end=""的作用,图形打印
- 275℃PythonNet:实现Python与.Net代码相互调用!
- 270℃Python实现字符串小写转大写并写入文件
- 269℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 130℃原来2025是完美的平方年,一起探索六种平方的算吧
- 115℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 109℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)