递归: 在函数的定义中,函数内部的语句调用函数本身。
1、递归的原理
学习任何计算机语言过程中,“递归”一直是所有人心中的疼。不知你是否听过这个冷笑话:“一个面包,走着走着饿了,于是就把自己吃了”。
常理推断,特别是解释型语言,当程序执行函数内部的语句时,这个函数还没有定义完,没定义完怎么可以调用本身呢。
但实质上,当你执行函数内部的语句时,一定有函数外部的语句调用了这个函数,此时该函数的所有代码和语句,已经在内存中形成了逻辑,这就是递归函数的原理。
在Python当中很重要的就是递归的使用。
2、递归的玩法
牛叔语录:人类创造出的任何复杂的概念,都是为了让事情变得更简单一些。
递归是为了更好的解决,“自已定义自己”的数学或是哲学难题。
用好递归,有2个、2个、2个(重要的事情说3遍)要点,必须要同时注意,下面请各位评委看我的表演。
(1) 认清自己
认清自己是递归玩法的核心。与处理任何事情一样,首先要问的就是:如何准确地定义好“当前要做的事情”。处理好这个问题,我们就已经成功了一半。
此处我们拿数学函数为例, 因为数学函数的定义有公式,显而易见,它的意义就是根据变量来计算出结果,最容易被小白理解,栗子如下:
假设数学函数:
f(n) = (f(n-1) + 1)*2 ,告诉你f(1)=1,问f(10)是多少?
我们直接把这个f(n)定义成函数,并且计算f(10) 如下:
'''
def f(n):
if n==1:
return 1
else