- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲 函数式编程与文件操作
函数式编程概述
函数式编程概念
函数式编程:将计算过程看成数学函数,使用表达式编程
头等函数(大数据编程中概念):像其他的值,函数可以被当成参数传递,也可以被当成结果返回
高阶函数:头等函数中的一种实践,可将其他函数作为参数或返回结果的函数。如定义一个高阶函数map(),有两个参数:一个是函数func(),另一个是列表list。map()函数对list的所有元素应用函数func(),并将处理结果组成列表list1,作为map的返回结果
纯函数:
参数与返回值是与外界交流的位于渠道
不操作全局变量,无I/O操作,不改变任何传入的参数值
对于同一个输入值,一定得到相同的输出值
递归:函数调用内部实现递归
函数式编程优点
便于测试、调试
适合并行执行
二、python函数编程常用的函数
1. lamda表达式(一种匿名函数,来自数学中的λ演算)
(1)python匿名函数
语法:返回函数名=lamda 参数列表:函数返回值表达式语句
示例:计算x、y、z之和的lamda表达式:
sum=lambda x,y,z: x+y+z #相等于定义三个数求和的的函数sum
print(sum(1,2,3))
(2)lamda表达式数组
功能:将lamda表达式数组实现挑战杯功能,即函数列表
语法:数组名=[(lamda 表达式1), (lamda 表达式2), …]
示例:
Arr=[(lambda x:x**2), (lambda x: x**3), (lambda x: x**4)]
pint(Arr[0](2), Arr[0](1), Arr[0](2)) 结果:4,8,16
(3)将lambda表达式作为函数返回值
def math(o):
if(o==1):
return lambda x,y: x+y
if(o==2):
return lambda x,y: x-y
action=math(1)
print(“10+2”,action(10,2))
2. 使用map函数(用于将指定序列中所有元素作为参数调用指定函数,结果构成一个新的map序列
语法:结果序列=map(映射函数, 序列1[,序列2,…]) 取决于映射函数,可有多个序列
示例:使用map函数计算2、4、6、8、10的平方
arr=map(lambda x: x**2, [2,4,6,8,10])
for e in enumerate(arr)
print(e)
结果:
(0,4)
(1,6)
…
示例2:
Arr=map(lamda x,y: x+y, [1,3,5,7],[2,4,6,8])
B=list(Arr) 结果:[3,7,11,15,19]
filter()函数:对指定序列做过滤操作
示例:
def is_even(x):
return x%2==0
arr=filter(is_even, range(1,11))
a=list(arr) 结果:[2,4,6,8,10]
reduce()规约函数:将指定序列中所有元素作为参数按一定规则调用指定函数,进行规约,得到一个计算结果
语法:计算结果=reduce(映射函数,序列)
示例:
from functools import reduce
def myadd(x,y):
return x+y
sum=reduce(myadd, [2,4,6,8,10]) 或sum=reduce(lambda x,y:x+y, [2,4,6,8,10])
print(sum) 结果:30
习题3.1 随机输入一批(不超过100个)互不相同且不等于0的整数,输出最大值、最小值和平均值
习题3.2随机输入一批(不超过100人)学生的学号和身高,统计超过平均身高或身高超过170cm的学生人数并输出相应的学生信息和统计结果
习题3.3 输入一个正整数,计算其数值为偶数的数位之和。
三、文本文件读写
1. 打开文件
语法:文件对象=open(文件名,访问模式,buffering)
后两个参数可缺省,打开文件读
访问模式有:r,w,a,r+,w+,a+/rb,wb,ab,wb+,rb+,ab+
buffering:为0不缓冲;为1,缓冲1行;大于1,实际缓冲大小
2. 关闭文件
语法:f=open(…)
f.close()
3. 读取文件内容
(1)read方法
语法:str=f.read([b])
示例:
测试文件test.txt内容:
Hello Python
使用read()方法读取文件内容的例子
Python脚本:
f=o
您可能关注的文档
最近下载
- 小学作文审题技巧(整理).ppt
- AI技术在汽车保险行业的应用.pptx
- 掩模板光刻工艺研究-电子与通信工程专业论文.docx
- 托盘四向穿梭车式密集库设计规范.docx
- 伤害预防概述和策略答案-2024年全国疾控系统“大学习”活动.docx VIP
- Unit+8+section+B+reading说课课件2023-2024学年人教版英语八年级上册.pptx VIP
- 超星网课尔雅《国学智慧》超星尔雅答案2023章节测验答案.pdf
- AI智能在车险中的应用研究.pptx
- 酒店客房运营管理:客房异常情况处理与应急预案培训ppt课件.pptx
- 宜家 橱柜 FABRIKOR 法布利克 玻璃门柜 402.422.95 安装指南.pdf
文档评论(0)