野牛程序员让你一文读懂 Python range(),再也不被边界坑哭!
🎯 野牛程序员让你一文读懂 Python range()
,再也不被边界坑哭!
💡
range()
是 Python 中的一个神奇函数,常用于for
循环,但很多人总是在边界上踩坑!今天一次讲清楚,让for
循环更丝滑!
🚀 range()
是什么?
range()
是 Python 内置的一个生成整数序列的函数,常用于 for
循环。它的基本格式是:
range(start, stop, step)
start
:起始值,包含这个数(默认是0
)。stop
:结束值,不包含这个数!(很多人容易踩坑)step
:步长,决定每次增加多少(默认是1
)。
🌟 野牛程序员讲基础用法
📌 只有一个参数 stop
for i in range(5): print(i)
💡 注意:range(5)
默认从 0 开始,到 5 之前 结束,也就是 不包含 5!
输出:
0 1 2 3 4
📌 指定起始值 start
for i in range(2, 6): print(i)
输出:
2 3 4 5
🎯 记住:start=2
,stop=6
,所以包含 2,不包含 6。
🔥 step
步长的秘密
📌 正步长
for i in range(1, 10, 2): # 从 1 开始,每次加 2,直到小于 10 print(i)
输出:
1 3 5 7 9
💡 步长为正数时,必须满足 start < stop
,否则 for
循环不会执行!
📌 负步长
for i in range(10, 0, -2): # 从 10 开始,每次减 2,直到大于 0 print(i)
输出:
10 8 6 4 2
💡 步长为负数时,必须满足 start > stop
,否则啥也不会输出!
😱 range()
常见坑
❌ 停止值不包含
for i in range(1, 5): print(i)
输出:
1 2 3 4
💡 坑点:range(1, 5)
不会打印 5,因为 stop
是不包含的!
❌ 负步长方向错误
for i in range(1, 10, -1): # 这是错误的! print(i)
啥也不输出!🚨
💡 坑点:步长是 -1
,但 start=1 < stop=10
,方向反了,Python 直接罢工!
❌ step=0
会崩溃
for i in range(1, 5, 0): # 这是错误的! print(i)
💥 会报错:ValueError: range() arg 3 must not be zero
💡 坑点:步长 step
不能是 0,否则会陷入死循环!
🛠 range()
+ for
的高级玩法
📌 用 range()
生成索引
names = ["Alice", "Bob", "Charlie"] for i in range(len(names)): # `range(len(列表))` 生成索引 print(f"第 {i} 个人是 {names[i]}")
输出:
第 0 个人是 Alice 第 1 个人是 Bob 第 2 个人是 Charlie
🎯 用 range(len(列表))
遍历索引,让代码更灵活!
📌 range()
结合 list()
转换
print(list(range(5)))
输出:
[0, 1, 2, 3, 4]
💡 range()
只是个“生成器”,要变成列表,得用 list(range())
!
📌 反向遍历
for i in range(5, 0, -1): print(i)
输出:
5 4 3 2 1
🎯 步长 -1
让 range()
倒序执行,非常实用!
🎉 野牛程序员总结
range()
是 Python for
循环的好搭档,但它的边界规则经常让人迷惑:
✅ stop
不包含,range(1, 5)
只到 4
!
✅ 步长 step
不能是 0
,否则直接炸!💥
✅ 负步长要 start > stop
,否则啥也不输出!
💡 学会 range()
,轻松掌控 for
循环,让代码更高效!🚀
