Python开课复习-10/10
1. 什么时匿名函数
def 定义 的是有名函数:特点是可以通过名字重复调用
def func(): #func = 函数的内存地址
pass
匿名函数就是没有名字的函数:特点是只能在定义时使用一次 2.为何要以匿名函数
强调:
匿名函数的定义就相当于只产生一个变量值,而没有绑定任何名字,所以会在定义完之后就被回收,无法重复使用,
只能在定义时使用一次。
应用:当某一个功能仅仅使用一次就没有重复使用的必要时,就应该定义成匿名函数 3.如何使用匿名函数
lambda x,y : x+y
例子:print((lambda a,b : a+b ) ('hello ' , 'world') ) #需要注意匿名函数体要单独括号
4.匿名函数lambda和 内置函数的结合使用(max sorted map filter)
max求最大值
例子:比较字典中的每个人工资是谁最大
money ={
'egon': 3000,
'alex': 100000000,
'wupeiqi': 10000,
'yuanhao': 2000}
# 注意!!!!! 在字典中 max 只能是迭代什么返回什么,,只可以改变比较的对象
max( money , key = lambda k:money[k] )
sorted 排序
例子:
money ={
'egon': 3000,
'alex': 100000000,
'wupeiqi': 10000,
'yuanhao': 2000} # 此代码打印结果就可以把每个人的工资按照从小到大排列,加上reverse=Ture可以从大到小排列
print(sorted(money,key=lambda k:money[k],reverse=True))
# map 映射
#方式一:手动实现
# q=[]
names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']
# for i in names:
# a=i+'_sb'
# q.append(a)
# print(q) #方式二:列表生成式
print([i+'_sb' for i in names ]) # 方式三:map+匿名函数lambda
print(list(map(lambda x:x+'_sb',names))) # 需要加个list把他添加到列表中,元组也可以,否则打印的就是一个内存地址
# filter 筛选/过滤
names=['alex_dsb','wxx_sb','kevin_sb','hu_sb','egon']
# 方式一:手动实现
new_names=[]
for name in names:
if name.endswith('sb'):
new_names.append(name)
print(new_names) # 方式二:列表生成式
new_names=[name for name in names if name.endswith('sb')]
print(new_names) # 方式三:filter+匿名函数
res=filter(lambda name:name.endswith('sb'),names)
print(res)
print(list(res))
1.什么是函数递归
函数的递归调用是函数嵌套的一种特殊形式,特殊在调用一个函数的过程中又直接或者间接的调用了函数本身 递归本质就是一个循环的过程,
但是递归必须满足两个原则:
1.每进入下一层递归,问题的规模必须减小
2.递归必须有一个明确的结束条件或者说有一个明确的进入下一层递归的条件
并且递归有两个明确的阶段:
1.回溯: 一层一层的递归调用下去
2.递推:在某一层结束掉递归,然后一层一层返回 2.为何要用递归:
在某些情况下,基于递归来使用重复的过程比while循环更加简单 3.怎么用递归
例子:
def f1():
print('from f1')
f1()
f1()
二分法:
二分法是算法的一种,算法是如何高效地解决问题的思路
nums = [1, 13, 15, 23, 27, 31, 33, 57, 73, 81, 93, 94, 97, 101] # 从小到大排列的数字列表
def chazhao(shuzi,nums):
if len(nums) == 0:
print('没找到!')
return
zhong=len(nums)//2
if shuzi > nums[zhong]:
qq=nums[zhong+1:]
chazhao(shuzi,qq)
elif shuzi< nums[zhong]:
qq=nums[:zhong]
chazhao(shuzi,qq)
else:print('找到了') chazhao(57,nums)
Python开课复习-10/10的更多相关文章
- Python开课复习-10/17
pickle是一个用来序列化的模块序列化是什么?指的是将内存中的数据结构转化为一种中间格式 并存储到硬盘上 反序列化?将硬盘上存储的中间格式数据在还原为内存中的数据结构 为什么要序列化?就是为了将数据 ...
- Python开课复习-10/16
import random # random 随机数模块 # print(random.random()) #----float 大于0且小于1之间的小数# print(random.choice([ ...
- Python开课复习-10/15
#----------模块关键-------------------------------# if __name__=='__main__': # if 这个文件中加入这行代码# func1() # ...
- Python开课复习10
# 储备知识:# 函数的使用应该分为两个明确的阶段# 1. 定义阶段:只检测语法,不执行函数体代码def func(): print('from func')# 2. 调用阶段:会触发函数体代码的执行 ...
- Python开课复习9-28
一.什么是迭代器#迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 举例: l=[1,2,3] count=0 while co ...
- Python开课复习7
操作系统 操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来. #1. 打开文 ...
- 我的第一个python web开发框架(10)——工具函数包说明(一)
PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. ...
- 【python学习笔记】10.充电时刻
[python学习笔记]10.充电时刻 任何python都可以作为模块倒入 *.pyc:平台无关的经过编译的的python文件, 模块在第一次导入到程序中时被执行,包括定义类,函数,变量,执行语句 可 ...
- Deep learning with Python 学习笔记(10)
生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...
随机推荐
- POJ-3279.Fliptile(二进制状态压缩 + dfs) 子集生成
昨天晚上12点刷到的这个题,一开始一位是BFS,但是一直没有思路.后来推了一下发现只需要依次枚举第一行的所有翻转状态然后再对每个情况的其它田地翻转进行暴力dfs就可以,但是由于二进制压缩学的不是很透, ...
- ZOJ2018/4月月赛G题Traffic Light(广搜)
题意:首先T组数据,每组数据包括:第一行:一个n,m,然后下面有一个n行m列的01矩阵. 最后一行输入四个数字,分别是起点的横纵坐标,终点的横纵坐标.询问从起点到终点,最少要几步,如果到不了输出-1 ...
- RxJS之BehaviorSubject
Subject 的其中一个变体就是 BehaviorSubject,它有一个“当前值”的概念.它保存了发送给消费者的最新值.并且当有新的观察者订阅时,会立即从 BehaviorSubject 那接收到 ...
- Delphi:Exception输出堆栈信息
起源: 用习惯了c#之Exception的StackTrace,在程序出异常crash时候能够以其定位出问题的模块及行号,用回Delphi 2009,发现没有这东西. 显然,在编译环境日新月异的今天, ...
- 将tomcat做成windows服务
@参考文章 大致步骤: 1,配置环境变量(选读) 2,安装 3,卸载(选读) 配置环境变量: 这块不是必须的.我不喜欢给tomcat配置环境变量,默认即可.如需要配置可看参考文章,也可参考我之前的文章 ...
- xcode - pod install 出现错误
xcode 10 上pod install 出现错误 error: /Users/apple/Desktop/VenusClient/Pods/Pods/Target Support Files/Po ...
- swift -2018 - 创建PCH文件
第一种:简单方式 在swift文件 创建一个OC文件 1> command + n 2> 3> 此时 你会发现有提示 让你创建桥接文件 4>删除 OC文件 5> 直接复制 ...
- linux命令学习之:curl
curl命令是一个利用URL规则在命令行下工作的开源文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具.作为一款强力工具,curl支持包括HTTP.HTTPS ...
- Sqlserver的身份验证模式
1.服务器名称: . 在服务器名称这里,我们有以下几种选择来连接到本地: (1)默认的服务器名称:也就是电脑主机的名称 (2)".",“.”就表示主机. (3)localhost ...
- CSS背景background图片
一.CSS背景background图片 - TOP 1.背景图片语法background-image:url() 引入背景图片background-repeat:no-repeat 设置背景图 ...