位置: 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中如何获取列表中的元素)

  • 周天子的无奈(周天子的懦弱)

    周天子的无奈(周天子的懦弱)

  • word文档字体16磅怎么设置(字体大小16磅)

    word文档字体16磅怎么设置(字体大小16磅)

  • servicing文件夹可以删除吗(win10 servicing文件夹)

    servicing文件夹可以删除吗(win10 servicing文件夹)

  • 如何用电脑在方框里面打勾(如何用电脑在方框内均匀画无数个加号)

    如何用电脑在方框里面打勾(如何用电脑在方框内均匀画无数个加号)

  • 抖音直播怎么全屏无字看(抖音直播怎么全民K歌)

    抖音直播怎么全屏无字看(抖音直播怎么全民K歌)

  • 华为拨6130不能查(华为拨66)

    华为拨6130不能查(华为拨66)

  • 快手新号养号几天才能发作品(快手新号养号几天才能编辑资料)

    快手新号养号几天才能发作品(快手新号养号几天才能编辑资料)

  • 华为账号怎么解除实名认证(捡的手机关联华为账号怎么解)

    华为账号怎么解除实名认证(捡的手机关联华为账号怎么解)

  • 微信健康码在哪里可以看得到(微信健康码在哪里申请)

    微信健康码在哪里可以看得到(微信健康码在哪里申请)

  • 怎样删除微信笔记中的录音(怎样删除微信笔记里的图片)

    怎样删除微信笔记中的录音(怎样删除微信笔记里的图片)

  • 手机掉电快是什么原因(手机掉电快是什么回事)

    手机掉电快是什么原因(手机掉电快是什么回事)

  • 积目显示有消息但是就是看不到(积目显示有消息点开没有了)

    积目显示有消息但是就是看不到(积目显示有消息点开没有了)

  • 华为themes文件夹在哪里(华为themes文件夹没有下载的主题)

    华为themes文件夹在哪里(华为themes文件夹没有下载的主题)

  • 微信5分钟以上视频怎么发给好友(微信5分钟以上视频怎么发送朋友)

    微信5分钟以上视频怎么发给好友(微信5分钟以上视频怎么发送朋友)

  • 小米手环未获得微信沟通接口权限(小米手环未获得nfc)

    小米手环未获得微信沟通接口权限(小米手环未获得nfc)

  • 苹果x广角镜头怎么拍摄(苹果x广角镜头怎么开0.5)

    苹果x广角镜头怎么拍摄(苹果x广角镜头怎么开0.5)

  • 华为导出如何把手机照片(华为手机导出到存储设备在哪里)

    华为导出如何把手机照片(华为手机导出到存储设备在哪里)

  • 淘宝跟天猫有什么区别(淘宝和天猫有什么区别优势和不足)

    淘宝跟天猫有什么区别(淘宝和天猫有什么区别优势和不足)

  • 如何定位抖音号(怎样定位抖音号)

    如何定位抖音号(怎样定位抖音号)

  • 音乐球球没有声音是怎么回事(音乐球球怎么玩的)

    音乐球球没有声音是怎么回事(音乐球球怎么玩的)

  • 快手唱歌直播怎么开(快手唱歌直播怎么赚钱)

    快手唱歌直播怎么开(快手唱歌直播怎么赚钱)

  • 华为p30有什么新功能(华为p30有多好)

    华为p30有什么新功能(华为p30有多好)

  • 小米称怎么连手机(小米的秤怎么连接)

    小米称怎么连手机(小米的秤怎么连接)

  • 苹果8pnfc功能在哪里打开(苹果8pnfc功能在哪里开启)

    苹果8pnfc功能在哪里打开(苹果8pnfc功能在哪里开启)

  • ip6tables-restore命令  还原ip6tables表

    ip6tables-restore命令 还原ip6tables表

  • 信息化投入包括手机吗
  • 采购材料的进项税
  • 房地产业所得税
  • 税款代码
  • 个人出租如何交税
  • 实际已缴纳所得税额不自动带出
  • 会计核算是否健全 填错了有影响吗
  • 维修费开发票选择什么税收分类编码
  • 金税盘锁死日期在哪里看
  • 无收入证明需要哪些手续
  • 暂估入库发票差额怎么办
  • 房租本月入账上月的怎么摊销?
  • 增值税进项销项每个月需要结转吗
  • 地质灾害评估费收费标准
  • 固定资产折旧属于制造费用吗
  • 净利润含不含所得税
  • 购买护肤品取得的发票能入账吗?
  • 广告机计入什么费用
  • 减少注册资本金程序
  • 股权成本计算公式rd
  • 电话充值卡如何变现
  • 发放股票股利后的未分配利润怎么算
  • 研发支出的台账由谁做
  • 帮别人公司过账100万,再转30回给他
  • 营业收入存入银行分录
  • 格式化时防止数据丢失
  • 交割单会出错吗
  • 年底会计人员要做什么
  • 发生利息收入的分录
  • 公司向私人借款利息可以入账吗
  • pop是什么文件
  • 手机怎么设置无信号
  • 比较有用的sr
  • 员工离职当月社保怎么扣除
  • yolov5讲解
  • 前端后端选择
  • php 表单
  • 深度学习之快速实现数据集增强的方法
  • 贸易公司结转销售成本凭证怎么做
  • linux查询ifconfig和cd命令的完整文件名
  • 微擎框架破解版v2.7.7
  • 小企业发出存货成本的计量方法有
  • 应收款挂账会计分录
  • mysql存二进制用哪个字段
  • 本期转让不动产的销售额是什么意思
  • 代宰 增值税
  • SQL查询数据库中表的某一列
  • 固定资产未登记入账
  • 固定资产报废如何交增值税
  • 以前年度买的固定资产一直未入账,现在还能入账吗?
  • 固定资产残值怎么做账务处理
  • 股东追加投资怎么算
  • 转让股权需要缴纳哪些税
  • 国家法定滞纳金规定
  • 建筑施工企业劳务费怎么入成本
  • 股东分红需要
  • 电子设备按5年折旧可以吗?
  • 网上报税零申报流程演示2018
  • 来料加工的特点包括
  • 登记会计账簿的注意事项
  • 预收账款可以挂在应收账款
  • mysql5.7免安装版配置
  • mac怎么打开mac系统
  • 方正笔记本
  • win8怎么设置开机启动项
  • xp怎么关闭自启动
  • 简述linux系统有什么优点
  • linux 磁盘情况
  • win1020h2正式版
  • 如何关闭win8快速启动
  • android canvas rotate
  • opengl es2
  • centos7如何分区
  • unity项目流程
  • nvm下载安装
  • linux基本代码
  • unity3d游戏开发教程
  • Python中的字典用法
  • jquery悬浮弹出提示框
  • 广东 电子税局 app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设