我不明白递归是如何工作的。基本情况最后运行,但返回值为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:
它返回
None
,因为只有当参数的长度为0
时才返回值,即参数是空字符串。在递归中simpleRecursion(myString[1:])
可以返回一个值,但是您从不使用它。因此,simpleRecursion
根本不返回值,除非参数是空字符串。用return simpleRecursion(myString[1:])
替换simpleRecursion(myString[1:])
以修复此问题。你知道吗必须在else子句中显式返回,否则返回值将丢失:
相关问题 更多 >
编程相关推荐