zoukankan      html  css  js  c++  java
  • day15 Python函数递归,轻易不要用递归,容易搞出来内存溢出

    古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知,致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。

    在函数内部,可以调用其他函数。如果在调用一个函数的过程中直接或间接调用自身本身

     递归一定要有个明确的结束条件

    #_*_coding:utf-8_*_
    __author__ = 'Linhaifeng'
    import time
    
    person_list=['alex','wupeiqi','yuanhao','linhaifeng']
    def ask_way(person_list):
        print('-'*60)
        if len(person_list) == 0:
            return '没人知道'
        person=person_list.pop(0)
        if person == 'linhaifeng':
            return '%s说:我知道,老男孩就在沙河汇德商厦,下地铁就是' %person
        print('hi 美男[%s],敢问路在何方' %person)
        print('%s回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问%s...' %(person,person_list))
        time.sleep(3)
        res=ask_way(person_list)    #递归调用自己
        # print('%s问的结果是: %res' %(person,res))
        return res
    
    res=ask_way(person_list)
    
    print(res)
    
    结果:
    hi 美男[alex],敢问路在何方
    alex回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问['wupeiqi', 'yuanhao', 'linhaifeng']...
    ------------------------------------------------------------
    hi 美男[wupeiqi],敢问路在何方
    wupeiqi回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问['yuanhao', 'linhaifeng']...
    ------------------------------------------------------------
    hi 美男[yuanhao],敢问路在何方
    yuanhao回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问['linhaifeng']...
    ------------------------------------------------------------
    linhaifeng说:我知道,老男孩就在沙河汇德商厦,下地铁就是
    # def calc(n):
    #     print(n)
    #     if int(n / 2) == 0:
    #         return n
    #     res=calc(int(n / 2))
    #     return res
    #
    #
    # res=calc(10)
    # print(res)
    
    
    结果:
    10
    5
    2
    1
    1
    
  • 相关阅读:
    Cypress安装使用(E2E测试框架)
    AirtestIDE详解(跨平台的UI自动化编辑器)
    Linux之自动化部署
    工作笔记 之 Python应用技术
    工作笔记 之 Linux服务搭建
    工作笔记 之 互联网实用技术
    Git全面应用
    Python-Thread(通俗易懂)
    php笔记(二)PHP类和对象之Static静态关键字
    php笔记(一)面向对象编程
  • 原文地址:https://www.cnblogs.com/charon2/p/10373655.html
Copyright © 2011-2022 走看看