添加范围中的所有数字,包括数字

时间:2016-08-15 01:45:26

标签: python

我试图创建一个函数,它增加了一个数字的范围,包括数字。

所以当我输入5时,我应该收到15。

为什么这个功能不起作用?

def sum_nums(number):
    start = 0 
    for index in range(0,len(number)):
        start += index
    return start 

print sum_nums(5)

4 个答案:

答案 0 :(得分:2)

如果有人没有提到sum(range(n))总是n*(n-1)/2,那么这个问题就不错了。如果您希望这样做包含值n,则表达式为sum(range(n+1))n*(n+1)/2

答案 1 :(得分:1)

使用内置'reduce'的python,如下所示。当你从1开始并迭代到6时,也可以实现你想要的。

reduce(lambda x, y: x+y, range(1, 6))

答案 2 :(得分:1)

您可以使用以下内容在单行中执行此操作:

def sum_range_inclusive(number):
    return sum(range(number + 1))

要解决这个问题:

# assume number is 5 for now
number = 5    

# exclusive, doesn't include the number
range(number)
# returns [0, 1, 2, 3, 4]

# inclusive, includes the number
range(number + 1)
# returns [0, 1, 2, 3, 4, 5]

# sum of inclusive range
sum([0, 1, 2, 3, 4, 5])
# returns 15

答案 3 :(得分:0)

这可以通过1个班轮来完成,但我会帮助你找到你正在尝试的格式的解决方案。

def sum_nums(number):
    total = 0
    for i in range(number + 1):
        total += i
    print total

输入5

输出15

另外,根据您的错误消息进行一些澄清。 len将用于字符串。整数没有长度。通过简单地将其传递给range函数,它将尝试从1到该数字的所有数字(如果您没有指定起始编号),但不包括它。这就是我们range(number + 1)包含目标号码的原因。

希望这会有所帮助:)