我想創建一個程序,它接受用戶整數輸入,創建一個列表,然後使用遞歸 添加列表。問題是當我輸入6時出現了15,而 的答案應該是(0 + 1 + 2 + 3 + 4 + 5 + 6)= 21。爲什麼數學是錯誤的?我想,那一定是在某處索引,因爲如果你省略了6你得到15Python - 創建一個整數列表並使用遞歸來添加它們
#Program which accepts a number from the user
#take the numbers 0 to the number input
#and gives a total of the numbers
def main():
#Get the number from the user to define upper end of range
num = int(input('Enter a non-negative integer: '))
#Create the list of numbers
numbers = list(range(0,num, 1))
#Get the sum of the list of numbers
my_sum = range_sum(numbers, 0, - 1)
#Display the total
print('The sum of 0 to', num, 'is: ', my_sum)
def range_sum(num_list, start, end):
if start < end:
return 0
else:
return sum(num_list)
#call the main function
main()
您應該修復縮進。 'list(range())'應該縮短爲只使用'range()'。 – jorgenkg
另外,'range(0,num,1)'只是'range(num)' – jonrsharpe
查看'numbers'中的數字。是否真的如你所期望的那樣,然後查看「範圍」的文檔以查明原因。 – Daniel