zoukankan      html  css  js  c++  java
  • python函数---带参数的装饰器递归函数

    # count = 0
    # def func():
    #     global count
    #     count += 1
    #     print(count)
    #     func()
    #     print(456)
    # func()
    
    # RecursionError
    # 递归的最大深度1000层 : 为了节省内存空间,不要让用户无限使用内存空间
    # 1.递归要尽量控制次数,如果需要很多层递归才能解决问题,不适合用递归解决
    # 2.循环和递归的关系
        # 递归不是万能的
        # 递归比起循环来说更占用内存
    # 修改递归的最大深度
        # import sys
        # sys.setrecursionlimit(1000000000)
    
    # 你的递归函数 必须要停下来
    # 递归函数是怎么停下来的?递归3次结束整个函数
    # count = 0
    # def func():        # func1
    #     global count
    #     count += 1     # 1
    #     print(count)
    #     if count == 3: return
    #     func()
    #     print(456)
    # func()
    #
    # def func():        # func2
    #     global count
    #     count += 1     # 2
    #     print(count)
    #     if count == 3: return
    #     func()
    #     print(456)
    #
    #
    # def func():        # func3
    #     global count
    #     count += 1     # 3
    #     print(count)
    #     if count == 3:return
    #     func()
    #     print(456)
    
    # 函数的调用
    # 函数的参数
    # 函数的返回值
    
    # 一个递归函数要想结束,必须在函数内写一个return,并且return的条件必须是一个可达到的条件
    # 并不是函数中有return,return的结果就一定能够在调用函数的外层接收到
    # def func(count):
    #     count += 1
    #     print(count)
    #     if count == 5 : return 5
    #     ret = func(count)
    #     print(count ,':',ret)
    #     return ret
    # print('-->',func(1))
    
    # def func(1):
    #     1 += 1
    #     print(2)
    #     if 2 == 5 : return 5
    #     ret = func(2)
    #     print(ret)
    #     return ret
    #
    # def func(2):
    #     2 += 1
    #     print(3)
    #     if 3 == 5 : return 5
    #     ret = func(3)
    #     print(ret)
    #     return ret
    #
    # def func(3):
    #     3 += 1
    #     print(4)
    #     if 4 == 5 : return 5
    #     ret = func(4)
    #     print(ret)
    #     return ret
    #
    # def func(4):
    #     4 += 1
    #     print(5)
    #     if 5 == 5 : return 5
    #     func(count)
    #
    
    # def func(count):
    #     count += 1
    #     print(count)
    #     if count == 5 : return 5
    #     return func(count)
    # print('-->',func(1))
    
    # 先写正则的题目
    # 递归相关
    # 1.计算阶乘 100! = 100*99*98*97*96....*1
        # 循环
        # 递归
    def fin(n):
        if n ==1 :
            return n
        else:
            return n*fin(n-1)
    ret = fin(7)
    print(ret)
    
    # 2.os模块:查看一个文件夹下的所有文件,这个文件夹下面还有文件夹,不能用walk
    # 3.os模块:计算一个文件夹下所有文件的大小.这个文件夹下面还有文件夹,不能用walk
    # 4.计算斐波那契数列
        # 找第100个数
        # 1 1 2 3 5
    # 5.三级菜单 可能是n级
        # 递归 循环
        # https://www.cnblogs.com/Eva-J/articles/7205734.html#_label4
    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车战': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
  • 相关阅读:
    【Hello CC.NET】巧用模板简化配置
    【Hello CC.NET】自动化发布时 Web.config 文件维护
    Hello Jexus
    【Hello CC.NET】CC.NET 实现自动化集成
    SSE和WebSocket的用法和比较
    利用canvas实现鼠标跟随效果
    使用es6制作简单数独游戏
    ppt学习(3)
    ppt学习(2)
    ppt学习(1)
  • 原文地址:https://www.cnblogs.com/zengluo/p/13129158.html
Copyright © 2011-2022 走看看