博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 递归
阅读量:4931 次
发布时间:2019-06-11

本文共 887 字,大约阅读时间需要 2 分钟。

一、解释

递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归

:Python在递归中没有像别的语言对递归进行优化,所以他的每一次调用都会基于上一次的调用进行,并且他设置了最大的递归数量防止递归外溢

二、实例

#直接调用自己:def func():    print('from func')    func()func()
#间接调用自己def foo():    print('from foo')    bar()def bar():    print('from bar')    foo()foo()
#递归的实现:def age(n):    if n == 1:        return 18    return age(n-1)+2print(age(5))# age(5)=age(4)+2 第一次进入# age(4)=age(3)+2 第二次进入# age(3)=age(2)+2 第三次进入# age(2)=age(1)+2 第四次进入# age(1)=18 第五次进入,最后判断终止条件# age(n)=age(n-1)+2 #n>1  递归终止条件# age(1)=18 #n=1          等于终止条件

三、递归的回溯与递推

递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推

回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯

# 实例l =[1, 2, [3, [4, 5, 6, [7, 8, [9, 10, [11, 12, 13, [14, 15,[16,[17,]],19]]]]]]]def search(l):    for item in l:        if type(item) is list:            search(item)        else:            print(item)search(l)

 

转载于:https://www.cnblogs.com/liuxiaowei/p/7262428.html

你可能感兴趣的文章
CSS3 2D 转换
查看>>
视觉跟踪入门概念
查看>>
lumen 在AppServiceProvider 使用Illuminate\Support\Facades\Redis 报错
查看>>
Python随心记--函数之面向对象
查看>>
git上传文件夹报错: ! [rejected] master -> master (fetch first) error: failed to push some refs to 'h...
查看>>
uwp如何建立任何形状的头像,如圆形,方形,六边形等
查看>>
Python之禅与八荣八耻
查看>>
[正能量系列]失业的程序员(三)
查看>>
Windows下Tesseract4.0识别与中文手写字体训练
查看>>
特征工程 —— 特征重要性排序(Random Forest)
查看>>
命名 —— 函数的命名
查看>>
常见矩阵求导
查看>>
Node.js第三天
查看>>
XML--概念、约束、解析
查看>>
Windows Azure 90天Free Trial (不含教程),已经可以支持中文简体与中文繁体了
查看>>
清空浏览器缓存
查看>>
Unity学习疑问记录之向量基础
查看>>
linux -- 嵌入式2.6.37wifi-vnt6656移植驱动
查看>>
ubuntu -- mf210v拨号流程
查看>>
Spring MVC概述
查看>>