首页 > 解决方案 > 为什么此函数返回“无”值?

问题描述

我尝试为递归函数编写代码,该函数将 x 值作为输入参数并打印 x 位严格递增的数字。例如x = 6给出输出67891011

l = []


def recfun(x):
    if x == 12:
        for i in range(0,len(l)):
            l[i] = str(l[i])
        print(l)
        return int("".join(l))
    else:
        l.append(x)
        x += 1
        recfun(x)


x = int(input('Enter a number: '))
y = recfun(x)
print(y)

我知道这不适用于除 6 以外的其他值。但打印的返回值显示None.

输入:

Enter a number: 6

输出:

['6', '7', '8', '9', '10', '11']
None

请提出一些方法来克服这个问题。

标签: pythonpython-3.x

解决方案


由于您已将返回值分配给 y 但您的递归不会在 else 语句中recfun(x)返回 任何替换return recfun(x)


推荐阅读