如果我想要一个从0到100的列表,我可以使用五个步骤range(0,105,5)
,但我也可以使用range(0,101,5)
.
老实说,这些对我来说都没有意义,因为排除最后一个数字似乎不直观.
除此之外,以5为单位从0到100创建列表的"正确"方法是什么?如果有人有时间,在什么情况下排除最后一个数字使代码更容易阅读?
您列出的两个选项并不相似.一个是range(start, stop+step, step)
另一个是range(start, stop+1, step)
.他们没有必要返回同样的东西.他们唯一的做法是什么时候可stop - start
被整除step
.
>>> start, stop, step = 0, 42, 5 >>> range(start, stop+step, step) [0, 5, 10, 15, 20, 25, 30, 35, 40, 45] >>> range(start, stop+1, step) [0, 5, 10, 15, 20, 25, 30, 35, 40]
那么,你应该使用哪一个?如果您想要[开始,停止](包括),则使用stop+1
范围的结尾.除此之外还有任何stop+1
副作用.range(0, 42+5, 5)
结果包括45,不在[0,42]范围内.你对这件事有什么感想?