gpt4 book ai didi

python - 递归数字求和程序返回 "None"作为 Python 中的总和

转载 作者:行者123 更新时间:2023-11-30 23:23:18 25 4
gpt4 key购买 nike

我正在学习递归,并编写了这段代码来返回从 1 到所选数字的所有数字的总和。当我运行程序时,无论我最初输入什么数字,它给我的总和始终是“无”,我的意思是,outputSum变量的值在我的程序中似乎是“无”。我认为更改 SUM_OF_NUMBERS 的初始化值可能会改变这一点,但事实并非如此,我仍然得到“None”作为输出。谁能指出我的代码中导致此错误的部分吗?

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()

最佳答案

您得到的是 None,因为当输入大于 0 时您没有返回任何内容。

比你所拥有的简单得多。

def sumOfNumbers(number):
if number > 0:
return number + sumOfNumbers(number-1)
else:
return 0

关于python - 递归数字求和程序返回 "None"作为 Python 中的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com