为什么这个递归python函数返回None?

2024-09-29 23:31:42 发布

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

我不明白递归是如何工作的。基本情况最后运行,但返回值为None。怎么会?你知道吗

def simpleRecursion(myString) :
    print (myString);
    if len(myString) == 0 :
        # base case
        return "base";
    else : 
        # recursive step
        simpleRecursion(myString[1:])

result = simpleRecursion("abcdefg");
print(result);

Tags: nonebaselenreturnifdef情况result
2条回答

它返回None,因为只有当参数的长度为0时才返回值,即参数是空字符串。在递归中simpleRecursion(myString[1:])可以返回一个值,但是您从不使用它。因此,simpleRecursion根本不返回值,除非参数是空字符串。用return simpleRecursion(myString[1:])替换simpleRecursion(myString[1:])以修复此问题。你知道吗

必须在else子句中显式返回,否则返回值将丢失:

else: 
    # recursive step
    return simpleRecursion(myString[1:])

相关问题 更多 >

    热门问题