【发布时间】:2017-02-19 18:56:58
【问题描述】:
在 Python 控制台中,此代码应返回 15,但它返回 10。 怎么了?
print(sum(range(5)))
【问题讨论】:
-
运行
range(5)看看那个子表达式给你什么 -
range(n)以0开头到n-1。更多信息请参考range()文档
标签: python python-3.x
在 Python 控制台中,此代码应返回 15,但它返回 10。 怎么了?
print(sum(range(5)))
【问题讨论】:
range(5) 看看那个子表达式给你什么
range(n) 以0 开头到n-1。更多信息请参考range()文档
标签: python python-3.x
因为ranges 是独占的,它们不包括您指定的最后一个 (stop) 元素,来自 the documentation on range objects:
对于一个积极的步骤,范围
r的内容由公式r[i] = start + step*i确定,其中i >= 0和r[i] < stop
省略step 默认值为1。
你基本上是在总结这个:
list(range(5))
[0, 1, 2, 3, 4]
显然,总和为10。
【讨论】:
在python中,
range(5) 等价于[0,5)
【讨论】: