匿名函数和递归函数

写匿名函数 : 接收两个参数,返回较大值(不用max内置函数)
f1 = lambda a,b : max(a,b)
f2 = lambda a,b : a if a>b else b

匿名函数
定义
匿名函数的内存地址 = lambda 参数1,参数2 : 返回值/返回值的表达式
调用
接收返回值 = 匿名函数的内存地址(参数)
什么是递归(Recursion) : 递/归
函数的递归 : 在一个函数的内部调用它自己
while True:
print('从前有座山,山里有座庙,庙里有个老和尚讲故事')

def story():
print('从前有座山,山里有座庙,庙里有个老和尚讲故事')
story()
story()
RecursionError: maximum recursion depth exceeded while calling a Python object
超过了递归的最大深度
递归的最大深度是多少?
n = 0
def func():
global n
n += 1
print(n)
func()
func()
import sys
print(sys.getrecursionlimit()) # 查看递归的最大深度
官网上 源码中设置的 : 1000
自己实际测试的 : 998

如果你的递归每次都要超过限制 不适合用递归来解决
为什么要有限制? 内存消耗的保护机制
def func():
a = 1
b = 2
func()
func()

import sys
sys.setrecursionlimit(1000000) # 设置递归的最大深度
n = 0
def func():
global n
n += 1
print(n)
func()
func()

总结
1.递归函数的定义 :一个函数在执行的过程中调用了自己
2.递归在python中的最大深度 : 1000/998
3.递归的最大深度是可以自己修改的,但是不建议你修改

停不下来的递归函数早晚会报错
了解递归/正确的递归函数
什么是递归(Recursion) : 递/归
函数的递归 : 在一个函数的内部调用它自己
while True:
print('从前有座山,山里有座庙,庙里有个老和尚讲故事')

def story():
print('从前有座山,山里有座庙,庙里有个老和尚讲故事')
story()
story()
RecursionError: maximum recursion depth exceeded while calling a Python object
超过了递归的最大深度
递归的最大深度是多少?
n = 0
def func():
global n
n += 1
print(n)
func()
func()
import sys
print(sys.getrecursionlimit()) # 查看递归的最大深度
官网上 源码中设置的 : 1000
自己实际测试的 : 998

如果你的递归每次都要超过限制 不适合用递归来解决
为什么要有限制? 内存消耗的保护机制
def func():
a = 1
b = 2
func()
func()

import sys
sys.setrecursionlimit(1000000) # 设置递归的最大深度
n = 0
def func():
global n
n += 1
print(n)
func()
func()

总结
1.递归函数的定义 :一个函数在执行的过程中调用了自己
2.递归在python中的最大深度 : 1000/998
3.递归的最大深度是可以自己修改的,但是不建议你修改

停不下来的递归函数早晚会报错
了解递归/正确的递归函数
posted @ 2018-11-14 15:05  雨中含春  阅读(200)  评论(0编辑  收藏  举报