美文网首页
Python 11:递归函数

Python 11:递归函数

作者: Cc曹子恒 | 来源:发表于2018-04-23 20:49 被阅读0次

在函数内部,可以调用其他函数。如果一个函数在内部调用自身,这个函数是递归函数。
举个例子计算阶乘n! = 1 * 2 * 3 * 4... * n,用fact(n)表示,可以看出:
fact(n) = n! = 1 * 2 * 3 * 4... * n = (n-1)! * n = fact(n-1) * n,所以,fact(n)可以表示为n * fact(n - 1),只有n = 1是需要特殊处理。
于是,fact(n)用递归的方式写:

def fact(n):
    if n == 1:
        return 1
    return n * fact(n - 1)

上面就是一个递归函数。

>>> fact(1)
1
>>> fact(5)
120

递归函数的优点就是定义简单,逻辑清晰。理论上,所有递归函数都可以写成循环的方式,但逻辑不如递归清晰。

练习:汉诺塔的移动可以用递归函数非常简单实现。
请编写move(n,a,b,c)函数,它接受参数n,表示3个柱子A,B,C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法:

def move(n,a,b,c):
    if n == 1:
        print(a,'-->'c)    #a上只有一个盘子
    else:
        move(n - 1,a,c,b)    #把a上n-1块移动到b
        move(1,a,b,c)    #把a上最后一块移动到c
        move(n-1,b,a,c)    #把b上最后n-1块移动到c

相关文章

  • Python语言程序---代码复用与函数递归(二)

    Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归。 递归并不...

  • Python 11:递归函数

    在函数内部,可以调用其他函数。如果一个函数在内部调用自身,这个函数是递归函数。举个例子计算阶乘n! = 1 * 2...

  • Python精简入门学习(十)

    Python精简入门学习之递归函数-递归 -递归 -如图所示

  • Python札记20_递归、传递

    在Python中函数也是一种对象,有几种特别的应用: 递归函数 传递函数 嵌套函数 递归 递归又称为递回,是指在函...

  • Python:3.函数

    调用函数 定义函数 函数的参数 递归函数 参考 廖雪峰的Python教程

  • 13_Python递归函数_全栈开发学习笔记

    1. 初识递归 什么是递归:在函数中调用自身函数最大递归深度默认是997/998 —— 是python从内存角度出...

  • 2019-01-07

    Day11 一、 递归 1、 什么是递归函数 在函数体内调用函数本身的函数就是递归函数实际开发的时候,能不用就不用...

  • 带你深入学习Python——Python递归详解!

    一、递归 递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归 注:Python在递归中没有像别的...

  • Python汉诺塔算法解析

    昨天看廖雪峰的Python教程,看到了递归函数,具体的递归函数看他讲的就可以,最好自己好好研究一下递归函数是干啥的...

  • python学习4

    学廖雪峰老师的python教程笔记。 1、递归函数 函数内部调用该函数本身,比循环逻辑简单 注意防止栈溢出 尾递归...

网友评论

      本文标题:Python 11:递归函数

      本文链接:https://www.haomeiwen.com/subject/tefrlftx.html