python关于函数迭代return为None
如题,吃了个亏,直接上例子
定义一个递归函数
m=4
def find1(m):
if m==1:
return 1
else:
find1(m-1)
print(find1(4))
很多同学可能觉得print输出得为1
但是事实上为 输出为None。
为什么呢,return1为最后面一层 return,即当你的值 递归到了 ‘f(1)’ ,f(1) 输出 return 1 到了f(2) ,但是f(2) 在 上就没有返回值了!如果不调用递归得话,return会直接返回,看下这个!
m=4
def find1(m):
if m==1:
return 1
else:
find1(m-1)
print(find1(1))
# export 1
如何修改呢?值需要加入一个return即可!
def find1(m):
if m==1:
return 1
else:
return find1(m-1)
print(find1(4))
# export 1
每一步返回下一级得返回,搞定了!