为何Python的for循环未处理最后一个索引值?代码示例解析
Python for循环最后一个索引未被处理的原因
这是因为Python里的range()函数遵循左闭右开的区间规则:range(start, stop, step)会生成从start起始、到stop之前结束的整数序列,永远不会包含stop参数本身。
你的代码里to的值是4,range(1, to, 1)等价于range(1,4),所以只会生成1、2、3这三个数,自然不会处理索引4。
解决方法
把range的结束参数改成to+1,让它覆盖到目标索引:
to=np.shape(aStaffs)[0]-1 # 结果为4(共5个元素,但不使用索引0) print("to:",to," ",end=" ") for stf in range(1, to+1): print("stf:",stf," ",end=" ") # 现在会输出1、2、3、4
如果步长是1,还可以省略第三个参数,写法更简洁。
内容的提问来源于stack exchange,提问作者Marc Tetreault
相关产品推荐
相关产品推荐

