为什么范围(开始,结束)不包括结束?>>> range(1,11)给你[1,2,3,4,5,6,7,8,9,10]为什么不1-11?他们是否只是随意决定这样做,或者它是否具有一些我没有看到的价值?
3 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
因为调用range(0, 10)哪个返回[0,1,2,3,4,5,6,7,8,9]包含10个等于的元素更常见len(range(0, 10))。请记住,程序员更喜欢基于0的索引。
另外,请考虑以下常见代码段:
for i in range(len(li)):
pass
你能不能看到如果range()真的len(li)那么这会有问题吗?程序员需要显式减1。这也遵循程序员喜欢的共同趋势for(int i = 0; i < 10; i++)了for(int i = 0; i <= 9; i++)。
如果您经常以1开头调用范围,则可能需要定义自己的函数:
>>> def range1(start, end):
... return range(start, end+1)
...
>>> range1(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
添加回答
举报
0/150
提交
取消