我試圖創建一個函數,將數字的範圍相加,包括數字。添加一個範圍內的所有數字,包括數字
所以,當我輸入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