Python 使用while语句对连续整数求和 示例: 从_到(3,7)的总和应计算为18(即3+4+5+6) 从_到(3,3)的和应计算为0

Python 使用while语句对连续整数求和 示例: 从_到(3,7)的总和应计算为18(即3+4+5+6) 从_到(3,3)的和应计算为0,python,loops,while-loop,Python,Loops,While Loop,我将如何处理这个问题?有一个更简单的解决方案 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 这将不包括结束值。所以你会得到你所需要的 首先,如果这不是家庭作业问题,答案很简单: sum(range(3, 7)) 在

我将如何处理这个问题?

有一个更简单的解决方案

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 

这将不包括结束值。所以你会得到你所需要的

首先,如果这不是家庭作业问题,答案很简单:

sum(range(3, 7))
在Python2.x中,使用
xrange
而不是
range
。就这样

如果这是一个家庭作业程序,你不允许使用
sum
range
甚至
for
循环(在这一点上,我想知道为什么他们甚至假装教你Python,但不管怎样…),这里有一个框架:

def sum_from_to(start, end):
    return sum(range(start, end))
您需要填写“?”部分。如何使
继续计数,每次1,直到它达到
结束
?您如何处理
total
使其保持一个连续的总和?这就是一切

作为进一步的提示:

可以使用变量的旧值生成新值。例如:

def sum_from_to(start, end):
    total = 0
    value = start
    while ???:
        total = ???
        value = ???
    return total

为了好玩,您可以使用euler求和公式纯数学地解决此问题:

i = 1
i = i * 2 # now it's 2
i = i * 2 # now it's 4

这样做的好处是计算成本非常低。没有循环,没有范围,没有数组,什么都没有。与之相比,其他函数的成本很高。

为什么需要使用
循环?您只需执行
sum(范围(低,高))
(使用
xrange
而不是2.x中的
range
)。范围(开始、结束、步骤)可能会有所帮助。非常感谢您!是的,这是一个家庭作业问题,这是否意味着我会有value=start+1?但仍然不确定如何处理total?不,如果您在循环中每次都执行
value=start+1
,并使用
sum\u from\u to(3,7)
调用它,则每次都将设置
value=3+1
。你希望值是3,然后是4,然后是5,然后是6,等等,对吗?查看进一步的提示,看看它是否对您的两个问题都有帮助。如果你仍然被困在这里,请随时提问。嗯,我会选择value=int+1吗?
int
是什么?它是一个将事物转换为整数的函数。为什么要将
1
添加到函数中?你看了提示了吗?我在提示中把
I=I*2
显示为double
I
?ohhh sooo value=value+1??这是一个
SyntaxError
。(教授之所以称参数为
start
stop
而不是
from
to
。)还有一个原因,
/
在Python中不是注释,而是除法。感谢您的更正,我的Python有点生疏了。没问题。您的一个代码行也只有1个空格,而不是4个,但我修复了这个问题,而不是仅仅添加另一条注释。
def sum_from_to(start,stop):
    return ((stop-1)*stop-(start-1)*start)/2

sum_from_to(3,7) #18