Python-为什么范围(start, end) 不包括结束?

发布于 2021-02-02 23:12:13

>>> range(1,11)

给你

[1,2,3,4,5,6,7,8,9,10]

为什么不选择1-11?

他们是只是决定随机执行此操作,还是有一些我没有看到的价值?

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    因为调用range(0, 10)return [0,1,2,3,4,5,6,7,8,9]包含10个等于equals的元素更为常见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]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看