def sum_from_to(start, end):
"""Return the sum of the integers from start up to but not including end.
sum_from_to(int, int) -> int
"""
while
我该如何处理?
答案 0 :(得分:2)
只是为了好玩,你可以使用欧拉求和公式纯粹用数学方法解决这个问题:
def sum_from_to(start,stop):
return ((stop-1)*stop-(start-1)*start)/2
sum_from_to(3,7) #18
这具有计算成本低廉的优点。没有循环,没有范围,数组,你有什么。相比之下,其他功能相当昂贵。
答案 1 :(得分:1)
有更简单的解决方案。
sum(range(3, 7))
这不包括最终值。所以你会得到你所需要的。
答案 2 :(得分:1)
首先,如果这不是一个家庭作业问题,答案是微不足道的:
def sum_from_to(start, end):
return sum(range(start, end))
在Python 2.x中,使用xrange
代替range
。就是这样。
如果这是家庭作业计划,并且您不允许使用sum
或range
甚至for
循环(此时我不得不想知道他们为什么会这样做甚至假装教你Python,但不管......),这是一个骨架:
def sum_from_to(start, end):
total = 0
value = start
while ???:
total = ???
value = ???
return total
你需要填写“???”部分。你如何让value
一次一个地计数,直到达到end
为止?你怎么做total
使它保持运行总和?这就是它的全部内容。
进一步提示:
您可以使用变量的旧值来创建新值。例如:
i = 1
i = i * 2 # now it's 2
i = i * 2 # now it's 4