【发布时间】:2014-06-05 00:33:13
【问题描述】:
我正在学习递归,并编写了这段代码来返回从 1 到所选数字的所有数字的总和。当我运行程序时,无论我最初输入什么数字,它给我的总和总是“无”,我的意思是,我的程序中 outputSum 变量的值似乎是“无”。我认为更改 SUM_OF_NUMBERS 的初始化值可能会改变这一点,但事实并非如此,我仍然得到“无”作为输出。谁能指出我的代码中导致此错误的部分?
def sumOfNumbers(number):
SUM_OF_NUMBERS = 0
if number > 0:
SUM_OF_NUMBERS = SUM_OF_NUMBERS + number
else:
return SUM_OF_NUMBERS
number = number - 1
sumOfNumbers(number)
def main():
repeat = 'Y'
outputSum = 0
while repeat == 'Y' or repeat == 'y':
print("Welcome to the Sum Of Numbers program!")
number = int(input("\nPlease enter a number to sum up: "))
outputSum = sumOfNumbers(number)
print("\nThe sum of all numbers from 1 to " + str(number) + \
" is " + str(outputSum))
repeat = input("\nWould you like to sum up another number?" \
'\nEnter "Y" for "YES" or "N" for "NO": ')
if repeat == 'N' or repeat == 'n':
print("\nThank you for using the program.")
else:
print("\nSorry, that was not a valid option.")
repeat = input('Please enter "Y" for "YES" or "N" for "NO": ')
main()
【问题讨论】: