当前位置: 首页 > 面试题库 >

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

屠瑞
2023-03-14
问题内容
>>> range(1,11)

给你

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

为什么不选择1-11?

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


问题答案:

因为调用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]


 类似资料:
  • 问题内容: Java中float和double的范围包括什么? 为什么不建议在精度要求很高的地方使用float或double? 问题答案: Java的类的成员包含类型的Min和Max值。 检出的和静态最终成员。 (有些)人们会建议不要在精度和精度至关重要的事情上使用浮点类型,因为舍入误差可能会使可测量(少量)的量不起作用。

  • 问题内容: 我正在尝试按年龄段计算人数,几乎可以解决两个问题: 如果没有给定年龄范围(NULL)中的人,则该年龄范围不会出现在结果中。例如,在我的数据中没有“超过80”的条目,因此不会出现日期范围。基本上,当缺少日期范围时,在编程中看起来像是一个错误。 我想以特定方式订购结果。在下面的查询中,由于ORDER BY按age_range,因此‘20-29’的结果位于’Under 20’的结果之前。 这

  • 描述 (Description) slice( start, end )方法选择匹配元素的子集。 语法 (Syntax) 以下是使用此方法的简单语法 - <i>selector</i>.slice( start, end ) 参数 (Parameters) 以下是此方法使用的所有参数的说明 - start - 从哪里开始子集。 第一个元素为零。 从选择结束开始可以是否定的。 end - 从end

  • 问题内容: 据我了解,该函数实际上是Python 3中的一种对象类型,它像生成器一样动态生成其内容。 在这种情况下,我本以为下一行会花费过多的时间,因为要确定1个四舍五入是否在范围内,必须生成一个四舍五入值: 此外:似乎无论我添加多少个零,计算多少都花费相同的时间(基本上是瞬时的)。 我也尝试过这样的事情,但是计算仍然是即时的: 如果我尝试实现自己的范围函数,结果将不是很好! 使物体如此之快的物体

  • 傍晚 我正在玩一个小的swing应用程序,我添加了一个按钮,可以对被按下做出响应。因此,我需要实现ActionListener。我已经添加了这一行: 但是它告诉我它找不到“ActionListener”类。所以过了一会儿,我得到了这个: 我假设awt。*部分意味着它在awt伞下导入所有子包。显然情况并非如此。有人能为我澄清这个问题吗?

  • 我已经在Mac上通过自制程序安装了Python。 之后,我将Python版本检查为2.7。11,然后我试着表演 我得到以下错误消息: