初学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 ...
随机推荐
- rtl8188eu 驱动移植
测试平台 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL 目标机内核:Linux 4.1.15 rtl8188eu 驱动移植 在网上下载Linux版的驱动源码: wifi驱动的实现有 ...
- throws声明异常中断式处理异常
1.throws 编译期异常,一直往上抛最后是JVM处理(打印并中断程序) 2.声明多个或者直接声明父类
- shell 脚本 根据PID过滤查看进程所有信息
#!/bin/bash read -p "输入要查询的PID: " P #筛选第二列等于输入的PID号 n=`ps aux | awk '$2~/^'$P'$/ {print $1 ...
- 创建一个web项目
- Xshell 为什么会出现中文乱码?
在网上下载xshell并成功安装了,但是当登录服务器查看中文时却出现了乱码的现象呢?这是怎么回事呢?本集小编就同大家详细讲讲. 图1:使用中文命名文档 现象: 登录服务器查看中文却出现乱码 原因分析: ...
- 从输入 URL 到展现页面的全过程
总体分为以下几个过程 DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 DNS解析 域名到ip地址转换 TCP连接 HTTP连接是基于TCP连接 ...
- Wpf读写Xaml文件
前言 本文主要介绍Wpf读写Xaml文件. 读写实现 首先我们使用XamlWriter将Wpf的对象转换为Xaml字符串,代码如下: var btn = sender as Button; strin ...
- 有个计算机专业的学妹问我:我这个zip文件密码破解运行起来为什么内存爆了?
1.这篇博文的由来 2.跑下错误代码,找病根 先把学妹发给我的错误代码放上,能发现他为了提高速度加了多线程的代码,很聪明哦: import zipfile import itertools from ...
- ESP8266- 使用AT指令获取网络时间
前言:很早就考虑过用 ESP8266 获取网络时间,以前都是用 ESP8266 刷机智云的 Gagent 固件,但无奈现在手头的 ESP-01 的 Flash 只有 1M,实在无法胜任.经过在网络上的 ...
- ecshop调用指定栏目下的文章的方法
打开 index.php 添加 fun函数一个,需放在<php与?>中间. /** * 获得指定栏目的文章列表. * @param int $cid 栏目ID * @param int $ ...