函数三
1. 高阶函数
- 接收函数作为参数,或者将函数作为返回值返回的函数就是高阶函数
2. 闭包
- 将函数作为返回值也是高阶函数我们也称为闭包
- 闭包的好处
。 通过闭包可以创建一些只有当前函数能访问的变量
。 可以将一些私有数据藏到闭包中 - 行成闭包的条件
。 函数嵌套
。 将内部函数作为返回值返回
内部函数必须要使用到外部函数的变量
1. 猴子吃桃问题(递归):
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?
def num(day):
if day == 1:
return 1
return 2 * (num(day - 1) + 1)
print(num(10))