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