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

  • 分享淘宝短链微信推广技巧(短链接怎么在淘宝中打开链接)

    分享淘宝短链微信推广技巧(短链接怎么在淘宝中打开链接)

  • 如何同步老婆微信聊天(怎么能同步老婆的微信)

    如何同步老婆微信聊天(怎么能同步老婆的微信)

  • 红米note10与红米note10pro区别(红米note10与红米note9)

    红米note10与红米note10pro区别(红米note10与红米note9)

  • 我的世界喷泉怎么做(我的世界喷泉怎么搭)

    我的世界喷泉怎么做(我的世界喷泉怎么搭)

  • p40共有几个摄像头(p40共有几个摄像头啊)

    p40共有几个摄像头(p40共有几个摄像头啊)

  • 淘宝购物津贴是什么意思(淘宝的购物津贴)

    淘宝购物津贴是什么意思(淘宝的购物津贴)

  • 苹果左上角时间变蓝色(苹果左上角时间绿色是什么意思)

    苹果左上角时间变蓝色(苹果左上角时间绿色是什么意思)

  • 苹果耳机保修期多久(苹果耳机保修期内维修要钱吗)

    苹果耳机保修期多久(苹果耳机保修期内维修要钱吗)

  • 小米售后寄修需要几天(小米售后寄修需要保价吗)

    小米售后寄修需要几天(小米售后寄修需要保价吗)

  • 抖音老照片修复在哪里(抖音老照片修复怎么弄)

    抖音老照片修复在哪里(抖音老照片修复怎么弄)

  • 淘宝店铺关闭是什么意思(淘宝店铺关闭是因为卖的假货嘛)

    淘宝店铺关闭是什么意思(淘宝店铺关闭是因为卖的假货嘛)

  • 苹果11美颜相机怎样设置(苹果11美颜相机广角怎么用)

    苹果11美颜相机怎样设置(苹果11美颜相机广角怎么用)

  • 蓝牙已连接但声音外放(蓝牙已连接但声音外放电脑)

    蓝牙已连接但声音外放(蓝牙已连接但声音外放电脑)

  • ddr4最高频率(i5-13600kddr4最高频率)

    ddr4最高频率(i5-13600kddr4最高频率)

  • htc手机开不了机怎么办(htc手机开不了机了有什么办法)

    htc手机开不了机怎么办(htc手机开不了机了有什么办法)

  • 小米运动耳机怎么连接手机(小米运动耳机怎么拆)

    小米运动耳机怎么连接手机(小米运动耳机怎么拆)

  • ios13如何隐藏app(ios13.5怎么隐藏软件)

    ios13如何隐藏app(ios13.5怎么隐藏软件)

  • vivox27参数(vivox27参数配置详情 参数设置)

    vivox27参数(vivox27参数配置详情 参数设置)

  • 云闪付交医保怎么操作(云闪付交医保怎么取消)

    云闪付交医保怎么操作(云闪付交医保怎么取消)

  • 网易云音乐桌面歌词怎么显示苹果(网易云音乐桌面歌词怎么解锁)

    网易云音乐桌面歌词怎么显示苹果(网易云音乐桌面歌词怎么解锁)

  • 商家微信收款二维码怎么弄(商家微信收款二维码图片)

    商家微信收款二维码怎么弄(商家微信收款二维码图片)

  • 抖音申诉要多久(抖音申诉要多久通过)

    抖音申诉要多久(抖音申诉要多久通过)

  • 全民k歌如何去掉小程序(全民k歌如何去水印)

    全民k歌如何去掉小程序(全民k歌如何去水印)

  • macos big sur状态栏怎么显示键盘亮度?(macos big sur卡在)

    macos big sur状态栏怎么显示键盘亮度?(macos big sur卡在)

  • 保险中的车
  • 税金及附加怎么来的
  • 售卖会卡,达标返现,怎么进行账务处理
  • 所得税季报中的季末资产总额怎么算
  • 银行提供资金
  • 赔偿损失费用发票怎么开
  • 一般纳税人留底税额抵减欠缴税额
  • 应收账款让售账务处理
  • 折扣销售的增值税处理方式
  • 个税中的住房租金扣除什么意思
  • 场外货币基金赎回利息
  • 贷款利息进项税额转出
  • 未分配利润应该在借方还是贷方??
  • 一般纳税人销售自己使用过的物品
  • 建筑服务中的其他建筑服务
  • 资产置换会计处理办法
  • 两处拿工资的缴税问题
  • 工程预缴增值税2019最新规定
  • macbook怎么和ipad
  • linux如何用root用户登录
  • 股东认缴和实缴不一致
  • 如何配置环境变量windows
  • 京东预付卡怎么做账
  • 跨年退税怎么处理
  • window10怎么禁用系统弹窗
  • 高新技术企业补助需要交所得税吗
  • win10平板模式怎么显示桌面
  • 未取得专用发票是否计算增值税
  • 外贸进出口企业退税
  • phpstudy删除
  • 报销加油票怎么开票
  • thinkphp saveall
  • 商业模式诠释了一个企业如何赚钱
  • 私人定制ai绘画下载
  • php判断手机浏览记录数据
  • discuz怎么添加diy模块
  • 绿化苗木抵扣税是多少
  • 个人电子发票怎么查询
  • 年度报表资产总额平均值怎么算
  • 免税的10万元是什么
  • 预收货款尚未发货
  • 手机上动态调试apk
  • 快速显示隐藏单元格
  • 织梦网站特有标识
  • 建筑行业小规模纳税人和一般纳税人
  • 单位卖二手车如何交税
  • 入股投资的钱能取出来吗
  • 代发工资怎么算税
  • 个贷系统平账专户A户付款会计分录
  • 固定资产累计折旧会计科目
  • 银行存款利息应计入
  • 为什么记账能省钱
  • 电子发票怎么截屏
  • 外贸企业出口退税账务处理
  • 速动比率多少合适 视频
  • 营业收入的核算内容包括
  • sql 关系数据库
  • sql如何实现循环
  • 苹果15手机价格和图片颜色
  • optimize system
  • txt无法打开怎么弄
  • win8.1使用
  • win8 开机
  • 邮件版本
  • linux系统文件在哪个目录
  • win7系统打印机共享给win10
  • linux常用命令查看
  • popupblocker是什么
  • w10系统每次启动都要选择系统
  • Java反射机制和动态代理机制
  • node.js解析excel
  • vue.js如何使用
  • shell脚本学习指南
  • disk指令
  • unity 摄像机
  • 残疾人个税减免6000元
  • 地下车库是否缴房产税
  • 建行信用卡怎么提额
  • 税务申报热线电话
  • 纳税是什么税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设