Python中这段range循环代码为何无输出?
为什么
range(0, 10, -1)没有任何输出? Python 中 range(start, stop, step) 生成序列的规则很明确:
- 当 step 为正数时,从 start 开始逐步累加 step,直到数值大于等于 stop时停止,生成的所有元素都小于 stop
- 当 step 为负数时,从 start 开始逐步递减(每次加负的 step),直到数值小于等于 stop时停止,生成的所有元素都大于 stop
你写的range(0, 10, -1)里,start 是 0,stop 是 10,step 为负。此时需要 start > stop 才会生成有效序列,但 0 明显小于 10,所以这个 range 直接是空序列,for 循环根本不会执行,自然没有任何输出。
如果想要实现倒序打印的效果,得把 stop 设置成比 start 小的数值,比如range(10, -1, -1)会生成从 10 到 0 的整数序列,循环就能正常输出内容了。
内容的提问来源于stack exchange,提问作者Anurag
相关产品推荐
相关产品推荐

