08-面向过程与函数式

Posted zhuyouai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08-面向过程与函数式相关的知识,希望对你有一定的参考价值。

一、编程范式

编程范式指的是编程的套路,分为面向对象函数式面向对象等等

二、面向过程

1.面向过程的基本概念

面向的核心在于过程,过程指的是解决问题的步骤,即先干什么,后干什么

面向过程的开发程序就好比涉及一条流水线,是一种机械的思维方式

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

缺点:程序的可扩展性差

2.面向过程的编程思维应用场景解析

  • 不是所有的软件都需要频繁更迭,比如编写脚本
  • 即便是一个软件需要频繁更迭,也不并不代表这个软件所有的组成部分都需要一起更迭

三、函数式

跟面向过程不同的是,函数式更加注重结果

1.匿名函数

def用于定义有名函数

# 示例
def func(x,y)
	return x + y

既然有了有名函数,当然就有匿名函数,用于定义匿名函数的lambda

lambda x,y:x + y	# 相当于上述的func函数
# lambda x,y:x + y	此处的(x,y)为入口参数,x + y则为函数体

lambda函数简化了函数定义的书写形式,使得代码更加简洁,但使用函数定义显得更加直观,易于理解

匿名函数用于临时调用一次场景:更多的是将匿名与其他函数配合使用

2.匿名函数的应用

1)map函数

map()函数会根据提供的函数对指定序列做映射

语法
map(function,iterable,...)	
参数
  • function-函数
  • iterable-一个或多个序列
返回值

迭代器(python3)

列表(python2)

2)filter函数

filter()函数用于过滤序列,过滤掉不符合的元素,返回一个迭代器对象

语法
filter(function,iterable)
参数
  • function — 判断函数
  • iterable — 可迭代对象
返回值

迭代器对象

3)reduce函数

reduce()函数会对参数序列中元素进行累积

语法
reduce(function,iterable,[initializer])
参数
  • function-函数,有两个参数
  • iterable-可迭代对象
  • initializer-可选,初始参数
返回值

函数的计算结果

4)max函数

max()函数返回给定参数的最大值,参数可为序列

语法
max(x,y,z,...)
参数
  • x —— 数值表达式
  • y —— 数值表达式
  • z —— 数指表达式
返回值

给定参数的最大值

5)min函数

min()函数与max()函数不同的是,它返回给定参数的最小值,参数可为序列

语法
max(x,y,z,...)
参数
  • x —— 数值表达式
  • y —— 数值表达式
  • z —— 数指表达式
返回值

给定参数的最小值

6)sorted函数

sorted()函数对所有可迭代的对象进行排序操作

语法
# 语法
sorted(iterable,key = None,reverse = False)
# iterable —— 可迭代对象
# key —— 主要用来比较的元素,只有一个参数,参数取自可迭代对象中
# reverse —— 排序规则,True为降序,False为升序(默认)
参数
  • iterable —— 可迭代对象
  • key —— 主要用来比较的元素,只有一个参数,参数取自可迭代对象中
  • reverse —— 排序规则,True为降序,False为升序(默认)
返回值

重新排序的列表

以上是关于08-面向过程与函数式的主要内容,如果未能解决你的问题,请参考以下文章

第三周-第18章节-Python3.5-函数式编程与函数不同

面向过程,面向对象,函数式对同一个问题的思考方式

18-面向对象之基础

Matrix技术分享| Haskell与函数式编程简介

面向对象day1

函数式编程