python之路——17
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
复习
1.迭代器
2.生成器
3.内置函数
1.学习55个
2.带key的,max min filter map sorted
4.匿名函数
lambda
学习内容
1.递归函数
了解递归函数:函数内调用函数自己
缺点:占内存; 优点:简化代码
看懂递归函数:多到即便
应用场景:算法相同,重复
初识算法
计算方法:
查找数据
排序
最短路径
算法——二分法查找
三级菜单——递归实现
代码区
1.初识递归函数
import sys
sys.setrecursionlimit(10000000)
n = 0
def story():
global n
n += 1
print(n)
story()
story()
2.二分查找法的演变以及python实现
# 二分法
# v1 1.目标存在,2.只找到,索引错误
'''
l1 = [0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 8, 10, 23, 52, 66, 635, 6542]
def find(l, aim):
mid_index = len(l) // 2
if l[mid_index] < aim:
new_l = l[mid_index+1:]
find(new_l, aim)
elif l[mid_index] > aim:
new_l = l[:mid_index]
find(new_l, aim)
else:
print('Get', mid_index)
find(l1, 66)
'''
# v2
'''
l1 = [0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 8, 10, 23, 52, 66, 635, 6542]
def find(l, aim, start=0, end=len(l1)):
mid_index = (end - start) // 2 + start
if l[mid_index] < aim:
find(l, aim, start=mid_index + 1, end=end)
elif l[mid_index] > aim:
find(l, aim, start=start, end=mid_index-1)
else:
print('get', mid_index, aim)
find(l1, 0)
'''
# 问题:1.找不到的,2.参数end用到了l1 3.函数没有函数值 4.重复
# v3
def find(l, aim, start=0, end=None):
end = len(l) if end is None else end
mid_index = (end - start) // 2 + start
if start <= end:
if l[mid_index] < aim:
return find(l, aim, start=mid_index + 1, end=end)
elif l[mid_index] > aim:
return find(l, aim, start=start, end=mid_index-1)
else:
return mid_index
else:
return 'Not in here' l1 = [2, 3, 5, 10, 15, 16, 18, 22, 26, 30, 32, 35, 41, 42, 55, 56, 66, 67, 69, 72, 76, 82, 83, 88]
print(find(l1, 101))
python之路——17的更多相关文章
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Python之路【第六篇】:socket
Python之路[第六篇]:socket Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字&quo ...
随机推荐
- java 二分法学习
假设有一个数组 { 12, 23, 34, 45, 56, 67, 77, 89, 90 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -1.代码如下: package ...
- python day32--struct,文件上传下载
一.struct模块 可以把要发送的数据长度转换成固定长度的字节 struct.pack('i',数据长度) struct.unpack('i',数据长度) 二.上传下载文件作业 server imp ...
- 注意&&前后两个表达式有顺序的差别
//插入排序 public static void insertSort(int[] arr) { // 遍历所有数字 for (int i = 1; i < arr.length; i++) ...
- Fiddler实现手机抓包——小白入门
方法1:https://www.cnblogs.com/hzg1981/p/5610530.html 方法2:转载自:http://blog.csdn.net/gld824125233/article ...
- 使用Angular cli创建组件报错: Unexpected token / in JSON at position....
之前为了熟悉流程一直都是手动创建组件,今天试着用cli创建组件,居然报错了,报错大致为: Unexpected token / in JSON at position.... ,并且错误指向了.ang ...
- oracle数据库连接缓慢
今天连接数据库时非常的慢,大概将近1分钟,才能连上,感觉不对,登录数据库所在的服务器,进行检查,常规的内存.硬盘.CPU全都正常,然后想要进入oracle用户时报错了:su: cannot set u ...
- SpringBoot打成jar包后,获取不到读取resources目录下文件路径的问题
问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行 ...
- NoSQL、memcached介绍、安装memcached、查看memcached状态
1.NoSQL 2.memcached介绍 3.安装memcached(二进制包安装) yum install -y memcached libmemcached libevent (若没有安 ...
- windows10环境下VMware14中Ubuntu16.04解决如何上网问题
进入控制面板,网络和Internet,网络连接 点击以太网,查看详细信息 点击属性 --> 共享,允许其他网络-->选择VMnet1 点开虚拟机编辑选项 ,选择 VMNET1 仅主机,其他 ...
- qt+opencv 构建项目时报错——no such file or directory
构建前,记得,一定一定一定要先点击执行qmake: