zoukankan      html  css  js  c++  java
  • python课堂整理12---递归

    一、递归特性

    1.必须有一个明确的结束条件

    2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少

    3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会 减少一层栈帧,由于栈的大小不是无限的,所以递归调用的次数越多,会导致栈溢出)

    二、一个简单的递归

    def calc(n):
        print(n)
        if int(n / 2) == 0:
            return n
        res = calc(int(n / 2))
        return res
    
    a = calc(10)
    print(a)

    三、一个复杂点的递归(问路)

    import time
    ask_person = ['大白', '张敏', '刘文豪']
    def ask(ask_person):
        print("-"*60)
        if len(ask_person) == 0:
            return '没有人知道'
        person = ask_person.pop(0)
        if person == '刘文豪':
            return '%s说河南工业大学在高新区莲花街'%person
        print('Hi %s请问河南工业大学在哪'%person)
        print('%s回答道:我也不知道,看你人傻钱多帮你问问%s'%(person, ask_person))
        time.sleep(3)
        ars = ask(ask_person)
        print('%s问的结果是%s'%(person, ars))
        return ars
    
    a = ask(ask_person)
    print(a)
    

    一个奋斗中的产品小白
  • 相关阅读:
    虚拟机网络配置常见问题总结
    Python
    Python
    Python
    Python
    Python
    Python
    MySQL
    MySQL
    MySQL
  • 原文地址:https://www.cnblogs.com/dabai123/p/11046893.html
Copyright © 2011-2022 走看看