这就是问题:
编写一个名为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
答案 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<y
和x>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()函数的情况下完成的。