为什么 Range 函数排除上界
在 Python 中,range(start, end) 函数生成从 start 开始的数字序列并在结束之前结束。这种行为可能会让一些希望范围包含结束的用户感到困惑。
这种排除的原因在于 range(0, 10) 的常见用法。当以 0 开头使用时,range 返回 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],这是包含 10 个元素的所需序列。这与生成的序列的长度相匹配,确保循环和其他应用程序中的迭代次数正确。
此外,排除上限可以使循环语法更清晰。考虑代码片段:
for i in range(len(li)): pass
如果范围包含结束,当我到达 len(li) 时,上面的代码会抛出错误,因为它会尝试访问列表边界之外的元素。排除上限可以消除这种潜在的错误。
程序员通常更喜欢使用 i 范围为 0 到 len(li) - 1 的 for 循环,而不是 1 到 len(li)。这是由于编程中普遍使用基于 0 的索引。
对于喜欢包含上限的用户,可以创建自定义函数:
def range1(start, end): return range(start, end + 1)
使用 range1(1 , 10) 将产生所需的序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
以上是为什么 Python 的 `range()` 函数排除上限?的详细内容。更多信息请关注PHP中文网其他相关文章!