python 递归

介绍

重复任务常用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)
python 递归

图片.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

标签:递归   阶乘   目的   数列   遍历   节点   源代码   分解   函数   演示   组件   实例   叶子   例子   列表   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top