范围内的sum变量(python)

时间:2014-07-31 10:50:33

标签: python sum range

这就是问题:

  

编写一个名为sum_range的函数,它接受2个整数值   参数并返回两者之间所有整数的总和   值,包括第一个和最后一个值。参数可能在   任何顺序(即第二参数可能小于第一参数)。   例如:

     

result = sum_range(1,1)   打印(结果)1

     

result = sum_range(2,4)print(result)9

     

result = sum_range(3,2)   打印(结果)5

我的代码如下,我不知道哪里出错了 但是当我测试代码时,它返回了“没有”的代码。何时进入(2,4)(3,2)

def sum_range(x,y):
    if x == y:
        return x

    if x<y:
        sum(range(x,y))
        return
    if x>y:
        sum(range(y,x))
        return

4 个答案:

答案 0 :(得分:1)

你可以做得更好(至少我认为),这是我的代码:

def sum_range(a, b):
  return sum(range(min(a,b),max(a,b)+1))

答案 1 :(得分:0)

你非常接近,但忘了从计算中返回实际值。如果你只输入&#34;返回&#34;,你将返回None而不是总和的结果。

您还没有在总和中包含范围中的最后一个数字。请参阅以下更正的代码:

def sum_range(x, y):
    if x == y:
        return x
    if x < y:
        return sum(range(x, y+1))
    if x > y:
        return sum(range(y, x+1))

答案 2 :(得分:0)

您需要在x<yx>y案例中返回您未执行的总和。你应该

return sum(range(x,y))return sum(range(y,x))视情况而定。

另请注意,您的range()表达式中存在错误 - “包括第一个和最后一个值”。提示:range(1,3)输出什么?

答案 3 :(得分:0)

def sum_range(x,y):
    if x == y:
        return x
    elif x < y:
        s = 0
        for i in range(x,y):
            s += x+(x+1)
        return s
    elif x > y:
        s = 0
        for i in range(y,x):
            s += y+(y+1)
        return s

这是在不使用sum()函数的情况下完成的。