We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
参考:函数的回调和递归函数:https://www.jianshu.com/p/8606f789b468?from=singlemessage&isappinstalled=0
回调函数参考:JavaScript函数-回调函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。 递归的应用场景:遍历整个文件目录的结构、网络爬虫遍历整个网站的链接等。
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。
递归的应用场景:遍历整个文件目录的结构、网络爬虫遍历整个网站的链接等。
def sum_numbers(num): print(num) # 分别打印:3、2、1 # 递归出口。没有递归出口,可能导致死循环致程序中断。 # 程序到达出后后,函数的调用才能一层一层地返回,一直返回到最初调用的位置:sum_numbers(3) # Python默认的递归(程序递归地自我调用次数)限制是1000次。 if num == 1: return sum_numbers(num-1) sum_numbers(3)
代码的执行流程图:
def sum_numbers(num): print(num) # 断点调试分别输出:3、2、1 if num == 1: return 1 # 满足条件num==1,把1作为函数的返回值,返回到上次调用函数的位置:sum_numbers(num -1 ) temp = sum_numbers(num - 1) print('===============') print(temp) # 断点调试分别输出:1、3 print('===============') print(temp + num) # 断点调试分别输出:3、6 return temp + num print(sum_numbers(3)) # 打印出6
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Python 递归函数示例1:
代码的执行流程图:
Python 递归函数示例2:
代码的执行流程图:
The text was updated successfully, but these errors were encountered: