当我希望它返回15时,为什么这个表达式返回10?

时间:2017-02-19 18:56:58

标签: python python-3.x

在Python控制台中,此代码应返回15,但返回10。 有什么问题?

print(sum(range(5)))

2 个答案:

答案 0 :(得分:5)

由于range是独占的,因此它们不会包含您https://forums.aws.amazon.com/thread.jspa?threadID=56531指定的最后一个(stop)元素:

  

对于肯定步骤,范围r的内容由公式r[i] = start + step*i确定,其中i >= 0 r[i] < stop

省略step默认值为1

你基本上总结了这个:

list(range(5))
[0, 1, 2, 3, 4]

,显然,总和为10

答案 1 :(得分:0)

在python中,

range(5)相当于[0,5)