博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python ==》 递归
阅读量:4562 次
发布时间:2019-06-08

本文共 2219 字,大约阅读时间需要 7 分钟。

1.什么叫递归?

答:递归就是一个函数内调用自己。

2.最大的递归层次?

答:997层

3.最大层数修改: 导入 个 import sys 模块。 (不建议修改)

4.递归,三级菜单。

menu = {    '北京': {        '海淀': {            '五道口': {                'soho': {},                '网易': {},                'google': {}            },            '中关村': {                '爱奇艺': {},                '汽车之家': {},                'youku': {},            },            '上地': {                '百度': {},            },        },        '昌平': {            '沙河': {                '老男孩': {},                '北航': {},            },            '天通苑': {},            '回龙观': {},        },        '朝阳': {},        '东城': {},    },    '上海': {        '闵行': {            "人民广场": {                '炸鸡店': {}            }        },        '闸北': {            '火车战': {                '携程': {}            }        },        '浦东': {},    },    '山东': {},}menudef my_menu(menu):    while True:        for key in menu:            print(key)        k = input ('>>>')        if k in menu:            my_menu(menu[k])        elif k == 'back':            breakmy_menu(menu)
View Code

5.计算的方法

l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]def find(l,aim):    mid = len(l)//2    if l[mid] > aim:        new_l = l [:mid]        return find(new_l,aim)    elif l [mid] < aim:        new_l = l[mid+1:]        return find(new_l,aim)    else:        return l[mid]print(find(l,66))
View Code

6.一个数,除2到不能整除2为止。

def cal(num)    if num % 2 ==0        num = num //2            return cal (num)    else:         return numprint(cal(7))
View Code

7.找位置。

#4.找到索引位置list = [2,3,5,10,15,16,18,22,26]def find(l,aim,start,end):   #列表,目标值,开始,结束)    mid = (end+start) // 2   #  mid 等于  4   #2次: 5+8/2=6    if start < end:        if l[mid] > aim:   # 15   17   #相比较   #2次:  18  17            end = mid - 1   #end = 6-1=5            return find (l,aim,start,end)        elif l[mid] < aim:    # 15   17  相比较            start = mid +1   # start = 5t            return find(l,aim,start,end)        else:            return mid    else:        return '找不到'print(find(list,22,start=0,end=len(list)-1))
View Code

总结:

  递归解决的问题:就是通过参数,控制每一次调用速效计算的规模,适合的场景内,数据的规模在减小,

但是,解决问题的思路并没有改变。结束递归的标志:return

转载于:https://www.cnblogs.com/zhongbokun/p/7266161.html

你可能感兴趣的文章
iOS Keychain,SSKeychain,使用 理解 原理
查看>>
drupal CVE-2018-7600 复现
查看>>
JAVA遇见HTML——JSP篇:JSP内置对象(上)
查看>>
Spring初始化Bean或销毁Bean前执行操作的方式
查看>>
php五大运行模式CGI,FAST-CGI,CLI,ISAPI,APACHE模式
查看>>
正则表达式的使用知识
查看>>
配置文件项目学习分享
查看>>
第三阶段 11_JavaWeb基础_Ajax技术
查看>>
SQL字符串拼接
查看>>
Promise回调地狱学习小小小小小笔记
查看>>
69A
查看>>
configure new Linux/Mac
查看>>
MTK刷机快捷键
查看>>
320 Generalized Abbreviation
查看>>
斐波那契数列
查看>>
Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
查看>>
ASP.NET Core [2]:Middleware-请求管道的构成(笔记)
查看>>
【NOIP2017提高组模拟12.17】环
查看>>
Mysql特殊字符
查看>>
redis主从复制
查看>>