• python日记----2017.7.31--递归函数


    递归函数:
    递归的定义——在一个函数里再调用这个函数本身

    现在我们已经大概知道刚刚讲的story函数做了什么,
    就是在一个函数里再调用这个函数本身,
    这种魔性的使用函数的方式就叫做递归。
    1.从前有座山的故事:
    a.利用while循环打印出来:
    while True:
    story = "
    从前有个山,山里有座庙,庙里老和尚讲故事,
    讲的什么呢?
    "
    print(story)

    b.利用递归函数:
    def story():
    s = """
    从前有个山,山里有座庙,庙里老和尚讲故事,
    讲的什么呢?
    """
    print(s)
    story()

    story()
    2.递归的最大深度----997
    a.def foo(n):
    print(n)
    n += 1
    foo(n)
    foo(1)
    b.修改最大深度:
    import sys
    print(sys.setrecursionlimit(100000))
    def foo(n):
    print(n)
    n += 1
    foo(n)
    foo(1)
    (最大根据电脑本身有关)

    3.关于年龄的例子:
    def age(n):
    if n == 1:
    return 40
    else:
    return age(n-1)+2

    print(age(4))

    4.三级菜单
    menu = {
    '北京': {
    '海淀': {
    '五道口': {
    'soho': {},
    '网易': {},
    'google': {}
    },
    '中关村': {
    '爱奇艺': {},
    '汽车之家': {},
    'youku': {},
    },
    '上地': {
    '百度': {},
    },
    },
    '昌平': {
    '沙河': {
    '老男孩': {},
    '北航': {},
    },
    '天通苑': {},
    '回龙观': {},
    },
    '朝阳': {},
    '东城': {},
    },
    '上海': {
    '闵行': {
    "人民广场": {
    '炸鸡店': {}
    }
    },
    '闸北': {
    '火车战': {
    '携程': {}
    }
    },
    '浦东': {},
    },
    '山东': {},
    }
    def menu_l(menu):
    while True:
    for item in menu:
    print(item)
    key = input('>>>')
    if key in menu:
    menu_l(menu[key])
    else:
    break
    5.二分查找算法
    def func(l, aim,start = 0,end = len(l)-1 ):
    mid = (start+end)//2
    if not l[start:end+1]:
    return
    elif aim > l[mid]:
    return func(l,aim,mid+1,end)
    elif aim < l[mid]:
    return func(l,aim,start,mid-1)
    elif aim == l[mid]:
    print("bingo")
    return mid

    index = func(l,68)
    print(index)

  • 相关阅读:
    将本地文件夹添加到Git仓库
    flex调用Webservice(一)
    经典的sql
    打印相关
    reporting services订阅
    关于TabIndex
    试题(一)
    试试用手机
    2010.07.13_19:30
    基础知识
  • 原文地址:https://www.cnblogs.com/De-Luffy/p/7265109.html
Copyright © 2020-2023  润新知