python-day15函数递归
1.递归:
在函数内,调用自己。 (技巧: 每次调用时,函数前面需加上return,这样返回值就可以一层一层 的返回去)
#def age(n):
# if n == 1:
# return 40
# else:
# return age(n-1)+2
#print(age(4))
2.结束递归:
当遇到return时,递归结束
3.递归解决的问题就是通过参数来控制每一次调用缩小计算的规模
4.递归适合的场景:数据的规模在减小,但是解决问题的思路没有改变
5.例题:三级菜单
menu = {
# '北京': {
# '海淀': {
# '五道口': {
# 'soho': {},
# '网易': {},
# 'google': {}
# },
# '中关村': {
# '爱奇艺': {},
# '汽车之家': {},
# 'youku': {},
# },
# '上地': {
# '百度': {},
# },
# },
# '昌平': {
# '沙河': {
# '老男孩': {},
# '北航': {},
# },
# '天通苑': {},
# '回龙观': {},
# },
# '朝阳': {},
# '东城': {},
# },
# '上海': {
# '闵行': {
# "人民广场": {
# '炸鸡店': {}
# }
# },
# '闸北': {
# '火车战': {
# '携程': {}
# }
# },
# '浦东': {},
# },
# '山东': {},
# }
# def threeLM(dic):
# while True:
# for k in dic:print(k)
# key = input('input>>').strip()
# if key == 'b' or key == 'q':return key
# elif key in dic.keys() and dic[key]:
# ret = threeLM(dic[key])
# if ret == 'q': return 'q'
# elif (not dic.get(key)) or (not dic[key]) :
# continue
#
# threeLM(menu)
6.例题:二分法
# def func(l, aim,start = 0,end = len(l)-1 ):
# mid = (start+end)//2
# if not l[start:end+1]:
# return
# elif aim > l[mid]:
# return func(l,aim,mid+1,end)
# elif aim < l[mid]:
# return func(l,aim,start,mid-1)
# elif aim == l[mid]:
# print("bingo")
# return mid
#
# index = func(l,68)
# print(index)
python-day15函数递归的更多相关文章
- python之函数递归
函数递归调用 在函数内部,可以调用其它函数,如果一个函数在内部调用自身,即是递归调用 为防止无限递归类似于死循环,需要如下: 1.必须要有一个明确的返回值: 2.每次进入更深一层递归时,问题规模应该比 ...
- python基础-函数递归
函数递归 概念:直接或间接地重复调用函数本身,是一种函数嵌套调用的表现形式. 直接调用:在函数内部,直接调用函数本身 def foo(): print("这是foo函数") foo ...
- (十七)python 3 函数递归
递归函数 即自己调用自己,递归中可以函数自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件 优点:使用递归时,常常可以让代码更加简洁 缺点:递归会占用比较多的内存,当递归次数比较多时,性能 ...
- python 关于函数递归调用自己
爬取b站博人传 每页短评20个,页数超过1000页, 代码如下 import requests import json import csv def main(start_url): headers ...
- python day-15 匿名函数 sorted ()函数 filter()函数 map()函数 递归 二分法
一.匿名函数 匿名函数的结构:变量 = lamda 参数: 返回值 a = lamda x : x*x # x为参数, : 后边的为函数体 print(a(x)) def ...
- python全栈开发-Day12 三元表达式、函数递归、匿名函数、内置函数
一. 三元表达式 一 .三元表达式 仅应用于: 1.条件成立返回,一个值 2.条件不成立返回 ,一个值 def max2(x,y): #普通函数定义 if x > y: return x els ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- python之旅:三元表达式、列表推导式、生成器表达式、函数递归、匿名函数、内置函数
三元表达式 #以下是比较大小,并返回值 def max2(x,y): if x > y: return x else: return y res=max2(10,11) print(res) # ...
- Python之路Python全局变量与局部变量、函数多层嵌套、函数递归
Python之路Python全局变量与局部变量.函数多层嵌套.函数递归 一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局 ...
- python 之 函数 面向过程 三元表达式 函数递归
5.11 面向过程编程思想 核心是'过程'二字,过程即解决问题的步骤,即先干什么,再干什么........ 基于面向过程编写程序就好比在设计一条流水线,是一种机械式的思维方式. 总结优缺点: 优点:复 ...
随机推荐
- linux服务器---squid缓存
Squid缓存 代理服务器会在本地硬盘设置缓存,这样可以提高网络效率 1修改squid配置文件“/etc/squid/squid.conf”,参数“cache_dir_ufs”就是设置缓存目录的 [r ...
- Linux服务器配置---ftp用户黑名单
用户黑白名单 一个Linux主机中会多个用户,而我们希望有些用户不能去访问ftp.ftp服务器可以通过配置文件“/etc/vsftpd/user_list”来设置一个用户列表,这个列表可以是黑名单,也 ...
- PHP 开发 api 接口安全验证
原文链接:http://blog.csdn.net/li741350149/article/details/62887524
- 20145122《Android开发基础》实验四实验报告
实验名称 Android开发基础 实验内容 1.Windows环境下Android Studio 2.能够运行安卓AVD模拟器 3.使用安卓虚拟手机显示HelloWorld以及自己的学号 统计的PSP ...
- 20145206邹京儒《网络对抗》逆向及Bof基础实践
20145206邹京儒<网络对抗>逆向及Bof基础实践 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:ma ...
- 20165211 2017-2018-2 《Java程序设计》第3周学习总结
20165211 2017-2018-2 <Java程序设计>第3周学习总结 教材学习内容总结 本周,我学习了书本上第四章的内容,以下是我整理的主要知识. 第四章 类与对象 编程语言的几个 ...
- 如何解析读取excel数据
简介 前段时间完成了一个输出excel的任务,感觉挺开心的,用的就是Apache POI的jar包,Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Mic ...
- noip 2014 提高组 Day 2
1.无线网络发射器选址 这道题数据范围很小,就直接暴力枚举就好了.为了提高速度,就从每个有公共场所的点枚举周围在(x,y)放无线网路发射器可以增加的公共场所数量,加到一个数组里.所有公共场所都处理完了 ...
- Makefile使用总结【转】
1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...
- HDU 1863 畅通工程 (最小生成树
看卿学姐视频学到的题目 kruskal算法实现最小生成树 #include<bits/stdc++.h> using namespace std; ; typedef long long ...