初识递归

#递归函数
    # 了解什么是递归  : 在函数中调用自身函数
        # 最大递归深度默认是997/998 —— 是python从内存角度出发做得限制
    # 能看懂递归
    # 能知道递归的应用场景
    # 初识递归 ——
    # 算法 —— 二分查找算法
    # 三级菜单 —— 递归实现

# while True:
#     print(‘从前有座山‘)

# def story():
#     print(‘从前有座山‘)
#     story()
#     print(111)
#
# story()

#RecursionError: maximum recursion depth exceeded while calling a Python object
# 递归的错误,超过了递归的最大深度

import sys
sys.setrecursionlimit(1000000)
n = 0
def story():
    global n
    n += 1
    print(n)
    story()
story()

# 如果递归次数太多,就不适合使用递归来解决问题
# 递归的缺点 : 占内存
# 递归的优点:  会让代码变简单

# alex 多大       n = 1   age(1) = age(2)+2 = age(n+1) + 2
# alex比egon大两岁
# egon多大?      n = 2   age(2) = age(3) + 2 = age(n+1) +2
# egon比wusir大两岁
# wusir多大       n = 3   age(3) = age(4) + 2 = age(n+1) +2
# wusir比金老板大两岁
# 金老板多大?
# 金老板40了      n = 4   age(4) = 40

# n = 4 age(4) = 40
# n <4  age(n) = age(n+1) +2
def age(n):
    if n == 4:
        return 40
    elif n >0 and n < 4:
        age(n+1) + 2
#
print(age(1))

# # 教你看递归
# def age(1):
#     if 1 == 4:
#         return 40
#     elif 1 > 0 and 1 < 4:
#         return 46
#
# def age(2):
#     if 2 == 4:
#         return 40
#     elif 2 >0 and 2 < 4:
#         age(3) + 2    None +2
#
# def age(3):
#     if 3 == 4:
#         return 40
#     elif 3 >0 and 3 < 4:
#         42
#
# def age(4):
#     if 4 == 4:
#         return 40
#     elif n >0 and n < 4:
#         age(n+1) + 2

原文地址:https://www.cnblogs.com/20181013python/p/10016391.html

时间: 2024-11-10 11:12:37

初识递归的相关文章

Python之初识递归

什么是递归 在函数中调用函数本身,就是递归,当然不能无限制调用,调用深度为997,想要修改递归深度,用sys模块 import sys sys.setrecursionlimit(100000) # 修改深度为100000,具体到多少得看及计算机性能 斐波那契数列 # 函数形式的斐波那契数列(长度20) def func(n): if n==1 or n ==2: return 1 return func(n-1)+func(n-2) ret = func(20) print(ret) # 堆栈

python之理解——递归

古之欲明明德于天下者,先治其国:欲治其国者,先齐其家:欲齐其家者,先修其身:欲修其身者,先正其心:欲正其心者,先诚其意:欲诚其意者,先致其知,致知在格物.物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平. 这是从林海峰博客里面copy的.很好的解释了,python函数的递归. 那什么是递归? 在函数内部,可以调用其他函数.如果在调用一个函数的过程中直接或间接调用自身本身 def digui(n): print(n) digui(n) digui(

Python——递归、二分查找算法

递归函数 1. 递归 (1)什么是递归:在函数中调用自身函数(2)最大递归深度:默认997/998--是Python从内存角度出发做的限制 n = 0 def story(): global n n+= 1 print(n) story() #997/998 story() (3)修改最大深度:最好不要改--递归次数太多,则不适合用递归解决问题 import sys sys.setrecursionlimit(2000) #1997/1998 2. 递归的优点 会让代码变简单 3. 递归的缺点

10 递归

初识递归 定义 在函数中调用自身函数的函数.# 最大递归深度默认是997/998 -- 是python从内存角度出发做得限制 #RecursionError: maximum recursion depth exceeded while calling a Python object # 递归的错误,超过了递归的最大深度 # 打印最大递归深度 import sys print(sys.getrecursionlimit()) # 设置递归深度 import sys sys.setrecursio

python 序列化,常用模块

生成器与迭代器 生成器 迭代器 初识递归 模块如何调用 json与pickle json pickle time.datetime.logging模块

python--递归、二分查找算法

递归 初识递归 递归的定义--在一个函数里再调用这个函数本身 现在我们已经大概知道刚刚讲的story函数做了什么,就是在一个函数里再调用这个函数本身,这种魔性的使用函数的方式就叫做递归. 刚刚我们就已经写了一个最简单的递归函数. 递归的最大深度--997 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去.但是我们之前已经说过关于函数调用的问题,每一次函数调用都会产生一个属于它自己的名称空间,如果一直调用下去,就会造成名称空间占用太多内存的问题,于是python为了杜绝此类现象,强制

python--递归函数--景丽洋

楔子 在讲今天的内容之前,我们先来讲一个故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢?从前有座山,山里有座庙,庙里有个老和尚讲故事,讲的什么呢......这个故事你们不喊停我能讲一天!我们说,生活中的例子也能被写成程序,刚刚这个故事,让你们写,你们怎么写呀? while True: story = " 从前有个山,山里有座庙,庙里老和尚讲故事, 讲的什

17.11.9 汉诺塔问题

描述 汉诺塔是约19世纪末,在欧州的商店中出售一种智力玩具.它的结构如下图所示:  在一个平板上立有三根铁针,分别记为A, B, C.开始时,铁针 A 上依次叠放着从大到小 n 个圆盘,游戏的目标就是将 A 上的 n 个圆盘全部转移到 C 上,要求每次只能移动某根铁针最上层一个圆盘,圆盘不得放在这三根铁针以外的任何地方,而且永远只能将小的圆盘叠放在大的圆盘之上. 例如,下面就是示例输出中(n = 3)移动方案的图示: 这是一个著名的问题,几乎所有的教材上都有这个问题.由于条件是一次只能移动一个盘

老男孩Python高级全栈开发工程师【真正的全套完整无加密】

课程大纲 老男孩python全栈,Python 全栈,Python教程,Django教程,Python爬虫, scrapy教程,python高级全栈开发工程师,本套教程,4部分完整无缺,课程完结,官方售价6800元. 课程全部都是不加密,全部都有声音-不是网上那种几块钱十几块钱那种加密没有声音或者课程不全,贪便宜花冤枉钱不说都会严重影响学习,耽误大量时间! 本套全栈课程,不说完全媲美线下教学,只要你肯坚持,不会比面授差太多-坚持学完找一份python开发类的工作完全没问题,另外对于学习方面的投资