python递归中的return(python有递归吗)

网友投稿 281 2022-08-26


python递归中的return(python有递归吗)

在做一道练习题(参照下篇博文《在当前目录下递归的查找包含指定字符串的文件》)的时候,发现函数中的return的值竟然是None,百思不得其解,尝试化繁为简,用以下的简单的代码验证了一下

问题版本代码:为什么return i 返回的是 i , 而print(i)得到的是 0

def func(i): if i == 0: print(i) return i elif i > -2: i = i-1 func(i)print(func(3))运行结果:0None

如果把递归过程画成流程图,或许更容易理解一些

case1: 有递归的情况

case2: 无递归的情况

错误的解决方案:

def func(i): if i == 0: print(i) return i elif i > -2: i = i-1 func(i) return(i)print(func(3))运行结果:02

仍然图解一下,更直观

正确的解决方案一:

def func(i): if i == 0: print(i) return i elif i > -2: i = i-1 return(func(i))print(func(3))运行结果:00

正确的解决方案二:

result = Nonedef func(i): if i == 0: print(i) global result result = i elif i > -2: i = i-1 func(i) return resultprint(func(3))运行结果:00


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 实战TCP的客户端 - 胖子老板,再来一包烟(python下载安装教程)
下一篇:python3中的unicode_escape(python3中的str类型没有decode方法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~