zoukankan      html  css  js  c++  java
  • 匿名函数和递归函数

    写匿名函数 : 接收两个参数,返回较大值(不用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.递归的最大深度是可以自己修改的,但是不建议你修改

    停不下来的递归函数早晚会报错
    了解递归/正确的递归函数
  • 相关阅读:
    Web-js中级-11月13日
    Web-js中级-11月12日
    Web-js中级-11月9日
    Web-js中级-11月8日
    Web-js中级-11月7日
    django中自定义了manager函数,使用的时候报错AttributeError: 'Manager' object has no attribute 'title_count'
    django模型篇:一对一、一对多、多对多,添加,批量插入和查询操作
    from django.core.context_processors import crsf报错
    python报错:Exception Value:can only concatenate str (not "bytes") to str
    使用tkinter设计一个简单的加法计算器
  • 原文地址:https://www.cnblogs.com/F18866/p/9958066.html
Copyright © 2011-2022 走看看