什么是python的函数编程式?python的高阶函数包括哪些,作用是什么?
一:eval()和exec()函数
- eval() 函数:(表达式求值)
格式:
eval(source, global=None, locals=None)
作用:
把一个字符串当成一个表达式来执行,返回表达式执行后的结果。(通常用于网络通信)
示例:
x = 100
y = 200
s =”print(‘python’,‘x=’, x,‘y=’ , y)”
v = evals(s)
说明:
s是一个字符串,用veals()函数调用字符串,并用一个变量接收s的返回值,此时就会执行print语句,并打印输出s表达式的结果,代码如下:
2. exec() 函数
作用:
把一个字符串当成程序来执行。(相当于可以把程序写在字符串里)
格式:
Exec(source, global=None, locals=None)
示例:
x = 100
y = 200
s = ’z = x + y; print(z); del z; print(‘删除成功’)’
exec(s)
说明:
先执行exec(s)函数,计算字符串z的值,并打印输出,然后删除z,并打印删除成功。
二:globals和locals参数
- 此两个参数是用来设置’表达式’或’程序运行的全局变量和局部变量(此两个参数必须为字典)
示例:
x = 100
y= 200
s = ‘print(x , y , x+y)’
exec(s)
exec(s, {‘x’:10, ‘y’:20})
exec(s, {‘x’:10},{‘x’:1, ‘y’:2})
exec(s, {‘x’:10},{ ‘y’:2})
说明:
**如果s打印输出执行,它有两个作用域,分别是globals(全局变量)和locals(局部变量)。如果同一个字符串只有全局变量,那么程序就在全局里执行,如上面第二条exec语句,如果即有全局变量又有局部变量(如上例中第三条exec语句),那么会忽略掉全局变量,打印输出局部变量和程序s的最终结果。**代码如下图:
三:函数式编程
-
函数式编程是指用一系列函数决定问题。
-
函数是一等公民(我们程序的基本单位是用函数来组成的),函数本身可以赋值给变量,赋值后变量绑定函数,允许将函数本身作为参数传入另一个函数并返回一个函数。
-
函数式编程要求函数可重入性:即一个函数传的参数一定,则结果必须一定;要求def定义的函数不要访问除局部变量以外的变量。
示例:
def myadd(x, y)
return x + y
print(myadd(10, 20))
三:高阶函数(High Order Function)
- 满足下列任何一个条件的函数即为高阶函数:
-
函数接受一个或多个函数作为参数传入。
-
函数返回一个函数
2. python中内建(builtins)的高阶函数主要有:
- map , filter ,sorted
3. map函数:
-
map(func,*interables)用函数和可迭代对象中的每一个元素作为参数计算出新的可迭代对象,当最短的一个可迭代对象不再提供数据时,此可迭代对象生成结束。
-
示例:
def pow2(x):
return x ** 2
for x in map(pow2, range(1, 10)):
print(x)
- filter函数
- 格式:
filter(func, iterable)
- 作用:
筛选可迭代对象iterable中的数据,返回一个可迭代对象,此可迭代对象将iterable进行筛选。
- 说明:
函数func将对每个元素进行求值,返回False则将此数据丢弃,返回True则保留此数据。
- 示例:
判断x是否为奇数?
def isodd(x):
return x % 2 == 1
for x in filter(isodd, range(10)):
print(x)
even = [x for x in
filter(lambda x: x % 2 == 0, range(10))]
5. sorted函数:
- 作用:
将原可迭代对象的数据进行排序,生成排序后的列表。
- 格式:
sorted(iterable, key=None, reverse=False(默认升序))
- 说明:
-
Iterable可迭代对象。
-
key函数是用来提供一个参考值,这个值将作为排序的依据。
-
reverse标志用来设置是否降序排序。
- 示例:
L = [5, -2, -4, 0, 3, 1]
L2 = sorted(L)默认是升序排列
L2 = sorted(L, reverse=True) reverse为True的时候是升序排序
L3 = sorted(L, key=abs)依据列表数据里面的绝对值来排序
推荐我们的Python学习扣qun:784758214 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地
总结:
函数式编程就是用可用的函数,叠加在一起,办可能办的事。大家在编程时要注意,函数在python是利用率最高的语言,几个函数能完成的事,决不去编写什么循环、判断等语句代码,这样做反而会增加我们的工作难度,不利于代码运行。好了,有关高阶函数和函数的编程式小编就给大家介绍到这里,如喜欢小编的干货请关注、评论、分享!小编一定会给各位朋友们创作更多的优质内容与大家一起学习哦!