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

    '''
    递归
    在函数内部,可以调用其它函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
    
    递归特性:
    1.必须有一个明确的结束条件
    2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,
    每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多,会导致栈溢出)
    '''
    
    import time
    
    def calc(n):
       print(n)
       time.sleep(1)
       calc(n)
    
    def cala(n):
       print(n)
       if int(n / 2) == 0:
          return n
       return cala(int(n / 2))
    
    cala(10)
    
    
    person_list = ['alex', 'wenhui', 'xiaoliu', 'laipang', 'lhf']
    def ask_way(person_list):
       '''递归问路'''
       if len(person_list) == 0:
          return '没人知道'
       person = person_list.pop(0)
       if person == 'lhf':
          return '%s知道,在宝安区西乡街道金海路沃尔玛!' % person
       print('hi,美男%s,敢问路在何方' % person)
       print('%s说,我不知道,我帮你去问问%s' % (person, person_list))
       res = ask_way(person_list)
       print('%s说' % person, res)
       return res
    # 递归调用函数时,都会等函数的一个结果(即返回值),返回值由里往外一层层返回,直到最外层;
    print(ask_way(person_list))
    while True: print('studying...')
  • 相关阅读:
    权限管理
    用户和用户管理
    文本编辑器vim
    对于我的linux常用命令的说明
    linux常用命令6:关机重启命令
    linux常用命令:5网络命令
    linux常用命令:4文件压缩和解压命令
    linux常用命令:3文件搜索命令
    linux常用命令:2权限管理命令
    通过原型继承创建一个新对象
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14550027.html
Copyright © 2011-2022 走看看