介绍
重复任务常用for和while循环,它们可对对列表,集合等执行迭代。另外可以通过调用函数自身,即递归。
什么是递归?
递归函数通常有两个组件:
# Assume that remaining is a positive integer def hi_recursive(remaining): # The base case if remaining == 0: return print('hi') # Call to function, with a reduced remaining count hi_recursive(remaining - 1)
图片.png
为什么不使用Loop?
一些问题通常递归更容易解决。递归的常见用例是树遍历:
在使用递归时,遍历树的节点和叶子通常更容易思考。尽管循环和递归都可以遍历树,但它们具有不同的目的 - 循环意味着重复任务,而递归意味着将大任务分解为更小的任务。
实例:列表求和
Python包含列表的sum函数。默认的Python实现CPython在C中使用了一个不确定的for循环来创建这些函数(这里的源代码对于那些感兴趣的人)。让我们看看如何使用递归:
def sum_recursive(nums): if len(nums) == 0: return 0 last_num = nums.pop() return last_num + sum_recursive(nums)
实例:阶乘
def factorial(n): if n == 0 or n == 1: return 1 return n * factorial(n - 1)
斐波纳契数列
def fibonacci_iterative(n): if n <= 1: return n a = 0 b = 1 for i in range(n): temp = a a = b b = b + temp return a
本教程目录:https://www.jianshu.com/c/dde4ef0f60a0
页面更新:2024-04-11
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号