初学Python-day11 函数4
函数
1.递归函数
自己不断调用自己的过程
2.递归求和
1 def sum(arg):
2 if arg == 1:
3 return 1
4 return arg + sum(arg - 1)
5 print(sum(5))
3.递归分解
1 def a(arg):
2 print(arg) # 第一步: 3
3 b(arg - 1) # 第二步:b(2)
4 print(arg) # 第八步: 3
5
6
7 def b(arg):
8 print(arg) # 第三步:2
9 c(arg - 1) # 第四步:1
10 print(arg) # 第七步:2
11
12
13 def c(arg):
14 print(arg) # 第五步:1
15 print(arg) # 第六步:1 回到函数调用处
16
17
18 a(3)
匿名函数lambda
1.格式
lambda[参数]:表达式内容
2.定义
不在使用def关键字定义函数,而是使用lambda创建匿名函数
3.特点
--lambda为一个表达式,所以定义比def简单
--lambda主体是一个表达式,而不是代码块,所以只能封装有限的逻辑
--lambda有自己的命名空间
4.示例
1 res = lambda a, b: a + b
2 print(res(1, 2))
高阶函数
1.map、reduce函数
---map函数
fn:传递函数
lsd:集合
功能:将传入的函数作用在集合的每一个元素上,并返回iterator
示例:
1 list1 = ['1', '2', '3']
2 def changint(a):
3 print(a, type(a))
4 return int(a)
5 print(list(map(changint, list1)))
6 print(list(map(bool, list1)))
7 print(list(map(float, list1)))
--reduce函数
fn:传递为一个函数
lsd:传入集合
功能:传入的集合中的每个元素都会作用在我们传递的函数上,做累加运算,必须传递两个参数。
1 from functools import reduce
2 list1 = list(range(10))
3
4
5 def mysum(x, y):
6 print(x, y)
7 return x + y
8 print(reduce(mysum, list1))
filter函数
fn:传入函数
lsd:传入集合
用于过滤列表;将列表中的每个元素作用于传入的函数上,根据返回值的true/false来确定是否保留该元素
示例:
1 lis = list(range(1, 11))
2 def fun(i):
3 if not i % 2:
4 return True
5 return False
6 print(list(filter(fun, lis)))
去除空字符串
1 lis = list(range(1, 11))
2 def fun(i):
3 if not i % 2:
4 return True
5 return False
6
7 lis1 = ['a', 'b',' ', 'c', ' ', '1']
8 def fun1(i):
9 return i and i.strip()
10 print(list(filter(fun1, lis1)))
sorted函数
lsd:集合
key:排序的规则
作用:将集合中的每个元素作用于key函数上,根据函数结果进行排序。
示例:
1 lis1 = [1, 2, 0, 5, 3, -1]
2 print(list(sorted(lis1))) # 大小排序
3 lis2 = ['a', 'abc', 'ab', 'abcddd', 'addd']
4 print(sorted(lis2, key=len)) # 按长度排序
初学Python-day11 函数4的更多相关文章
- Python——day11 函数(对象、名称空间、作用域、嵌套、闭包)
一.函数对象 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 函数对象的应用 1. 可以直接被引用 fn = cp_fn 2 .可以当作函数参数传递 c ...
- python day11 函数(第三篇)
2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地 ...
- 跟着太白老师学python day11 函数名的应用 globals(), locals()
1. 函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...
- 初学 Python(十三)——匿名函数
初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- 初学Python(九)——函数
初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x) ...
- Python中函数、类、模块和包的调用
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
- 初学 Python(十五)——装饰器
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- 初学python之感悟
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
随机推荐
- JS_DOM操作之操作标签
<标签名 属性1="属性值1" 属性2="属性值2"-->文本</标签名> 1 - 文本操作 <div class="c ...
- adb - Performing Push Install adb: error: failed to get feature set: more than one 解决方案
问题背景 直接 adb install 包名 无法安装成功 解决方案 安装 adb -s 10.200.241.215:5555 install test.apk 删除 adb -s 10.200. ...
- Intel® QAT加速卡之逻辑实例
Intel QAT加速卡逻辑实例 1. QAT相关的名词组织关系 在本手册中描述的平台上,处理器可以连接到一个或多个英特尔通信芯片组8925至8955系列(PCH)设备. 从软件角度来看,每个PCH设 ...
- RDS导入注意事项
1)导入文件大小不超过100M,支持格式有CSV.SQL.ZIP 2)sql文件需注释如下内容: SET @@SESSION.SQL_LOG_BIN=0 ; SET @@GLOBAL.GTID_PUR ...
- (三、四)Superset 1.3图表篇——透视表-Pivot Table
本系列文章基于Superset 1.3.0版本.1.3.0版本目前支持分布,趋势,地理等等类型共59张图表.本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程. 而且目前 ...
- Vue项目-初始化之 vue-cli
1.初始化项目 a.Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-servi ...
- 【简单数据结构】二叉树的建立和递归遍历--洛谷 P1305
题目描述 输入一串二叉树,用遍历前序打出. 输入格式 第一行为二叉树的节点数n.(n \leq 26n≤26) 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式 前序 ...
- 解决idea debugger Frames are not available
现象:idea2017.3.7 sofaboot项目debugger报错 Frames are not available. 之前好用,不知道为啥突然不能debugger,run能正常运行代码.如下图 ...
- 解决navicat 导出excel数字为科学计数法问题
1.原因分析 用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学技术法的表现形式. 其实这个问题跟用什么语言导出csv文件没有关 ...
- django 对models中上传的文件或图片改名
def user_directory_path(instance,filename): print instance,filename ext = filename.split('.')[-1] pr ...