位置: IT常识 - 正文

python-面向过程与函数式(python面向过程与面向对象的区别)

编辑:rootadmin
面向过程与函数式 面向过程 ”面向过程“核心是“过程”二字,“过程”指的是解决问题的步骤,即先干什么再干什么......,基于面向过程开发程序就好比在设计一条流水线,是一种机械式的思维方式,这正好契合计算机的运行原理:任何程序的执行最终都需要转换成cpu的指令流水按过程调度执行,即无论采用什么语言、 ... 面向过程与函数式面向过程

推荐整理分享python-面向过程与函数式(python面向过程与面向对象的区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python面向过程和面向对象密码设置的区别,python面向过程 登录界面,python面向过程吗,python面向过程的语言,python面向过程和面向对象,python面向过程和面向对象的区别,python面向过程吗,python面向过程和面向对象,内容如对您有帮助,希望把文章链接给更多的朋友!

”面向过程“核心是“过程”二字,“过程”指的是解决问题的步骤,即先干什么再干什么......,基于面向过程开发程序就好比在设计一条流水线,是一种机械式的思维方式,这正好契合计算机的运行原理:任何程序的执行最终都需要转换成cpu的指令流水按过程调度执行,即无论采用什么语言、无论依据何种编程范式设计出的程序,最终的执行都是过程式的。

1、优点

将复杂的问题流程化,进而简单化

2、缺点

程序的可扩展性极差,

3、应用场景

面向过程的程序设计一般用于那些功能一旦实现之后就很少需要改变的场景, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程去实现是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护, 那还是用面向对象最为方便。函数式

函数式编程并非用函数编程这么简单,而是将计算机的运算视为数学意义上的运算,比起面向过程,函数式更加注重的是执行结果而非执行的过程,代表语言有:Haskell、Erlang。而python并不是一门函数式编程语言,但是仍为我们提供了很多函数式编程好的特性,如lambda,map,reduce,filter

匿名函数lambdapython-面向过程与函数式(python面向过程与面向对象的区别)

对比使用def关键字创建的是有名字的函数,使用lambda关键字创建则是没有名字的函数,即匿名函数,语法如下

lambda 参数1,参数2,...: expression

案例:

# 1、定义lambda x,y,z:x+y+z#等同于def func(x,y,z): return x+y+z# 2、调用# 方式一:res=(lambda x,y,z:x+y+z)(1,2,3)# 方式二:func=lambda x,y,z:x+y+z # “匿名”的本质就是要没有名字,所以此处为匿名函数指定名字是没有意义的res=func(1,2,3)print(res)

匿名函数与有名函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,所以匿名函数用于临时使用一次的场景,匿名函数通常与其他函数配合使用

案例

salaries={ 'siry':3000, 'tom':7000, 'lili':10000, 'jack':2000}

要想取得薪水的最大值和最小值,我们可以使用内置函数max和min(为了方便开发,python解释器已经为我们定义好了一系列常用的功能,称之为内置的函数,我们只需要拿来使用即可)

print(max(salaries))print(min(salaries))#默认根据字符比较大小"""结果如下"""tomjack

内置max和min都支持迭代器协议,工作原理都是迭代字典,取得是字典的键,因而比较的是键的最大和最小值,而我们想要的是比较值的最大值与最小值,于是做出如下改动

max1=max(salaries,key=lambda k:salaries[k])print(max1)min1=min(salaries,key=lambda k:salaries[k])print(min1)"""结果如下"""lilijack

直接对字典进行排序,默认也是按照字典的键去排序的

print(sorted(salaries))"""结果如下"""['jack', 'lili', 'siry', 'tom']

根据值的最大值与最小值排序

res=sorted(salaries,key=lambda k:salaries[k])print(res)"""结果如下"""['jack', 'siry', 'tom', 'lili']

特点

使用lambda关键字创建函数没有名字的函数匿名函数冒号后面的表达式只有一个,注意:是表达式,而不是语句匿名函数自带return,而这个return的结果是表达式计算后的结果

缺点

lamdba只能是单个表达式:不是一个代码块,lamdba的设计就是为了满足简单的函数场景仅仅能封装有限的逻辑,复杂逻辑实现不了,必须使用def来处理#匿名函数m=lambda x,y:x+y#通过变量去调用匿名函数print(m(23,19))M=lambda a,b,c:a*b*cprint(M(1,2,3))age =15print('可以继续参军,'if age>18 else'继续上学')C=lambda x,y:x if x>y else yprint(C(1,5))re=(lambda x,y:x if x<y else y)(16,12)print(re)Rs=lambda x:(x**2)+890print(Rs(10))map、filter、reduce(了解)l = ['zhoa', 'lisi', 'wangwu ']res = map(lambda name: name + '_dsb', l)print(res) # 生成器res1 = filter(lambda name: name.endswith('u'), l)print(res1)from functools import reduceres3=reduce(lambda x, y: x + y, [1, 2, 3],10)print(res3)"""结果如下"""<map object at 0x0000014D2CDF7E80><filter object at 0x0000014D2CDF7D60>16
本文链接地址:https://www.jiuchutong.com/zhishi/304721.html 转载请保留说明!

上一篇:10分钟用Python编写贪吃蛇小游戏(python编程bim)

下一篇:python中如何获取当前文件的部分信息?(python中如何获取列表中的元素)

  • 电子邮箱格式正确写法(电子邮箱格式)(电子邮箱格式正确格式手机格式)

    电子邮箱格式正确写法(电子邮箱格式)(电子邮箱格式正确格式手机格式)

  • oppok9pro是曲面屏吗(OPPOk9pro是曲面屏吗)

    oppok9pro是曲面屏吗(OPPOk9pro是曲面屏吗)

  • 小米8插上耳机音量归零(小米8插上耳机手机还能录音吗)

    小米8插上耳机音量归零(小米8插上耳机手机还能录音吗)

  • 手机绘制图案忘了怎么办(手机绘制图案忘记了怎么解锁清楚数据怎么办)

    手机绘制图案忘了怎么办(手机绘制图案忘记了怎么解锁清楚数据怎么办)

  • 表格中打字怎么换到下一行(表格中打字怎么变成两行)

    表格中打字怎么换到下一行(表格中打字怎么变成两行)

  • 笔记本没有麦克风能说话吗(笔记本没有麦克风阵列)

    笔记本没有麦克风能说话吗(笔记本没有麦克风阵列)

  • 为什么有的航班不支持手机在线选座(为什么有的航班突然没了)

    为什么有的航班不支持手机在线选座(为什么有的航班突然没了)

  • 华为畅连通话哪些机型有(华为畅连通话哪款好)

    华为畅连通话哪些机型有(华为畅连通话哪款好)

  • 苹果11自动调节亮度怎么关闭(苹果11自动调节亮度不管用)

    苹果11自动调节亮度怎么关闭(苹果11自动调节亮度不管用)

  • 移除描述文件密码是什么(苹果移除描述文件密码不知道密码)

    移除描述文件密码是什么(苹果移除描述文件密码不知道密码)

  • 管理员可以撤回群员超过2分钟的消息吗(管理员可以撤回超过2分钟的消息吗)

    管理员可以撤回群员超过2分钟的消息吗(管理员可以撤回超过2分钟的消息吗)

  • 华为平板m6与m5的对比区别在哪(华为平板m6与matepad区别)

    华为平板m6与m5的对比区别在哪(华为平板m6与matepad区别)

  • 手机勿扰模式怎样删除(手机勿扰模式怎么联系)

    手机勿扰模式怎样删除(手机勿扰模式怎么联系)

  • oppoa11怎样截屏(oppoa11手机怎么截图)

    oppoa11怎样截屏(oppoa11手机怎么截图)

  • 红米7和红米7a有什么区别(红米7和红米7a哪个性价比高)

    红米7和红米7a有什么区别(红米7和红米7a哪个性价比高)

  • 一个人坐飞机能带几个充电宝(一个人坐飞机能带几瓶酒)

    一个人坐飞机能带几个充电宝(一个人坐飞机能带几瓶酒)

  • word怎么画多条横线(word怎么画角度线)

    word怎么画多条横线(word怎么画角度线)

  • oppo手机显示hd怎么取消(oppo手机显示HD怎么设置)

    oppo手机显示hd怎么取消(oppo手机显示HD怎么设置)

  • qq音乐可以同时登陆两台手机吗

    qq音乐可以同时登陆两台手机吗

  • arserver 是什么(services for ar是什么)

    arserver 是什么(services for ar是什么)

  • 会声会影怎么动态跟踪(会声会影怎么让图片动起来)

    会声会影怎么动态跟踪(会声会影怎么让图片动起来)

  • 公交付款用什么软件(公交车上用什么支付)

    公交付款用什么软件(公交车上用什么支付)

  • 生产企业免抵退税
  • 房产税简易征收的时间
  • 开具3%增值税发票
  • 境外机构可以开通b股账户
  • 抵押住房属于
  • 房租租金收入都缴纳什么税金
  • 财政补助收入怎么结转
  • 培训费没有发票怎么办
  • 股东出资不做股本做借款该怎么写分录?
  • 公司法人信息变更是先去税务局还是先去银行
  • 福利费可以用什么科目
  • 营改增开票规定
  • 电子公章盖上去怎么文字看不到了
  • 建筑劳务公司开发票
  • 金融机构可以采取什么措施
  • 去年进项税没有抵扣了
  • 一般纳税人认定管理办法
  • linux路由器配置实例
  • 小规模纳税人取得防伪税控系统普通发票
  • realtek自动安装
  • 路由器网速太慢了怎么回事
  • 发票是自己买的吗
  • 多对账工作的主要内容
  • php连接数据表
  • 在产品定额工时怎么算
  • framework 4 client profile
  • 企业收到海河工厂发运的乙材料,并验收入库
  • 北京猿创源科技有限公司
  • less中使用js变量
  • jasperreports入门
  • php高级程序招聘
  • 公司购买的房屋怎么入账
  • 什么情况下开劳务费发票
  • 工程服务预付款最新规定
  • 销售赠品入什么科目
  • 生产工人工资属于生产过程中发生的费用吗
  • 企业给员工报销的个人消费支出如何计税
  • 出口退税计入
  • 汇算清缴是不是一定要做
  • 股东权益包括什么科目
  • 转让股权溢价账务处理会计分录
  • 交付使用资产是固定资产吗
  • 哪些项目不可以抵扣进项
  • 委托代销商品是什么科目
  • 母子公司间固定资产交换
  • 企业职工食堂就餐收费
  • 公司购买的财产保险要交印花税吗
  • 公司注销固定资产必须清理吗
  • 现金流量表的编制基础是权责发生制
  • 生产型企业的主要绩效考核指标
  • 多张不同固定资产卡片可汇总生成一张固定资产凭证
  • 房地产开发企业资质管理规定
  • mysqldump -h
  • sql server错误和使用情况报告
  • sql企业管理器在哪里
  • iis w3svc
  • windows任务管理器命令
  • 轻松玩转职场职场沟通与写作技巧答案
  • Windows Server 2008疑难杂症
  • bios设置网卡开启
  • xp系统软件开机自启
  • linux常用命令chown
  • debian安装配置清华源
  • xp系统的设置在哪里
  • fedora 图形界面
  • win8系统怎么重新安装系统
  • win10升级补丁后死机
  • jquery插件怎么写
  • jquery判断div是否显示
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • 安卓大作业小游戏五子棋
  • js模拟new
  • JavaScript中的数据类型
  • android回调函数
  • 最简单的java设计
  • jquery有自定义选择器吗
  • 如何查询哈尔滨医院药品信息
  • 房屋契税可以退个人所得税吗
  • 新企业会计准则长期待摊费用
  • 广州代理记账公司注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设