数和递归

2024-05-04 23:42:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把所有的值加起来,但总的值是零。请帮忙

def main():

    #local variable
    number = 0
    num_list = []

    #user inputs numb3er
    number = int(input('Enter number: '))
    num_list.append(number)
    print_num(number)
    print('The total value of the list is: ', sum_list(num_list))


def print_num(n):
    num_list = []
    if n > 1:
        print_num(n - 1)
        num_list.append(n)

        print(n)
    return num_list

def sum_list(num_list):
    if not num_list:
        return 0

    return num_list[0] + sum_list(num_list[1:])


main()

我目前调整了建议的内容,但仍然没有总结这些值


Tags: numberreturnifmainlocaldefvariablenum
1条回答
网友
1楼 · 发布于 2024-05-04 23:42:48

num_list永远不变。因此,调用sum_list()会按中的要求返回None

def sum_list(num_list): 
    if not num_list:
        return

只需在用户输入之后添加一个num_list.append(number)。 顺便说一下,sum\u list()函数的结尾缩进严重,应该是:

def sum_list(num_list): 
    if not num_list:
        return

    return num_list[0] + sum_list(num_list[1:])

相关问题 更多 >