我试图创建一个函数,将数字的范围相加,包括数字。添加一个范围内的所有数字,包括数字
所以,当我输入5,我应该得到15
为什么不工作这个功能呢?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
我试图创建一个函数,将数字的范围相加,包括数字。添加一个范围内的所有数字,包括数字
所以,当我输入5,我应该得到15
为什么不工作这个功能呢?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
这可能与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)
以包含目标号码的原因。
希望这有助于:)
使用像下面那样构建'python'的python。此外,你想要什么就可以实现,当你从1开始,遍历至6
reduce(lambda x, y: x+y, range(1, 6))
你可以做到这一点的一个班轮:
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
如果有人没这个问题将是有毛病不要提及sum(range(n))
始终是n*(n-1)/2
。如果您希望这样做,包括值n
,表达式是sum(range(n+1))
和n*(n+1)/2
。
尝试用'number'替换'len(number)'。 – Blorgbeard
你为什么要把数字的“len”而不是将它用于'range'? – TigerhawkT3
另外:这段代码应该给你一个错误信息。请始终包含您在问题中遇到的任何错误。 – Blorgbeard