Python全栈之迭代器和高阶函数

目录
  • 1. lambda表达式
  • 2. locals和globals
  • 3. 迭代器
    • 小提示:
  • 4. map高阶函数
  • 5. reduce高阶函数
  • 6. filter高阶函数
  • 7. sorted高阶函数
  • 8. 小练习
  • 总结

1. lambda表达式

# ### 匿名函数 : lambda表达式
"""
概念: 用一句话来表达只有返回值的函数
语法: lambda 参数 : 返回值
特点: 简洁,高效
"""
# (1) 无参的lambda表达式
def func():
	return "文哥是个帅哥"
# 改造
func = lambda : "文哥是个帅哥"
print(  func()  )

# (2) 有参的lambda表达式
def func(n):
	return id(n)
# 改造
func = lambda n : id(n)
print( func(100) )
# (3) 带有判断条件的lambda表达式
def func(n):
	if n % 2 == 0:
		return "偶数"
	else:
		return "奇数"
# 改造
func = lambda n : "偶数" if n % 2 == 0 else "奇数"
print( func(44) )
# 三元运算符
"""语法: 真值 if 条件表达式 else 假值
如果条件表达式成立为True , 返回if前面的真值,反之,返回else后面的假值
"""
n = 13
res = "偶数" if n % 2 == 0 else "奇数"
print(res)

# 小练习 : 比较两者之间的最大值进行返回
def func(x,y):
	if x > y:
		return x
	else:
		return y
# 改造
func = lambda x,y : x if x>y else y
print(  func(40,30)  )

2. locals和globals

# ### locals 与 globals 使用 (了解)
# 一.locals 获取当前作用域所有的变量
# 1.全局空间
"""
locals 在函数外 , 获取的是打印之前所有的全局变量
locals 在函数内 , 获取的是调用之前所有的局部变量
"""
"""
def func():
	a1 = 1
	b2 = 2
a = 1
b = 2
res = locals()
c = 3
print(res)
d = 4
"""
# 2.局部空间
"""
a = 1
b = 2
def func():
	a1 = 1
	b2 = 2
	res = locals()
	c3 = 3
	print(res)
	d4 = 4
c = 3
func()
d = 4
"""
# 二.globals 只获取全局空间的全局变量
"""
globals 在函数外 , 获取的是打印之前所有的全局变量
globals 在函数内 , 获取的是调用之前所有的全局变量
"""
# 1. 全局空间
"""
def func():
	a1 = 1
	b2 = 2
a = 1
b = 2
res = globals()
c = 3
print(res)
d = 4
"""
# 2.局部空间
"""
a = 1
b = 2
def func():
	a1 = 1
	b2 = 2
	res = globals()
	c3 = 3
	print(res)
	d4 = 4
c = 3
func() globals()
d = 4
"""
# ### globals  返回的是内置系统的全局字典
"""
dic = globals()
print(dic)
# 通过字符串可以创建全局变量
dic["wangwen"] = "18岁"
print(wangwen)
"""
# 批量创建全局变量
def func():
	dic = globals()
	for i in range(1,5):
		# 批量在dic当中添加键值对,以创建全局变量
		dic[ "a%d" % (i) ] = i
		"""
		dic["a1"] = 1
		dic["a2"] = 2
		dic["a3"] = 3
		dic["a4"] = 4
		"""
func()
print(a1,a2,a3,a4)

3. 迭代器

# ### 迭代器
"""
迭代器:
	能被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator  迭代器是对象)
概念:
	迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,
	单纯的重复并不是迭代
特征:
	并不依赖索引,而通过next指针(内存地址寻址)迭代所有数据,一次只取一个值,
	而不是一股脑的把所有数据放进内存.大大节省空间,
"""
# 一.可迭代对象
setvar = {"王同培","马春配","赵万里","赵沈阳"}
# 获取当前对象的内置成员
lst = dir(setvar)
print(lst)
# 判断是否是可迭代对象
res = "__iter__" in lst
print(res)
# for i in setvar:
	# print(i)
# 二.迭代器
"""
for循环之所以可以遍历所有的数据,是因为底层使用了迭代器,通过地址寻址的方式,一个一个的找数据;
可迭代对象 -> 迭代器  实际上就是从不能够被next直接调用 -> 可以被next指针直接调用的过程
如果是可迭代对象 -> 不一定是迭代器
如果是迭代器     -> 一定是可迭代对象
"""
# 1.如何创建一个迭代器
setvar = {"王同培","马春配","赵万里","赵沈阳"}
it = iter(setvar)
print(it)
# 2.如何判断一个迭代器
print(dir(it))
res = "__iter__" in dir(it)  and "__next__" in dir(it)
print(res)
# 3.如何调用一个迭代器
"""next是单向不可逆的过程,一条路走到黑"""
res = next(it)
print(res)
res = next(it)
print(res)
res = next(it)
print(res)
res = next(it)
print(res)
# res = next(it)
# print(res)
# 4.重置迭代器
it = iter(setvar)
print(  it.__next__()  )
print(  it.__next__()  )
print(  it.__next__()  )
print(  it.__next__()  )
# 5.调用迭代器的其他方法
# 1 for
it = iter(setvar)
for i  in  it:
	print(i)
print("<======>")
# 2 for + next
it = iter(setvar)
for i in range(2):
	print( next(it) )
print( next(it) )
print( next(it) )
# print( next(it) ) error  超出了寻址范围
# 6.判断迭代器/可迭代对象的其他方法
# 从...模块 引入...内容
from collections import Iterator, Iterable
"""Iterator 迭代器 Iterable 可迭代的对象"""
res = isinstance(it,Iterator)
print(res)
res = isinstance(it,Iterable)
print(res)
# 7.range是迭代器么?
print(isinstance(range(10),Iterator)) # False
print(isinstance(range(10),Iterable)) # True
# 变成迭代器
it = range(10).__iter__()
print(isinstance(it,Iterator)) # True
print(isinstance(it,Iterable)) # True
# 调用it
# next
res = next(it)
print(res)
res = next(it)
print(res)
print("<=====>")
# for + next
for i in range(3):
	print(next(it))
print("<=====>")
# for
for i in it:
	print(i)

小提示:

可迭代对象到迭代器就是一个不能被next直接调用到能被next直接调用的过程
for循环底层能表里无序的数据就是通过迭代器来实现的

4. map高阶函数

# ### 高阶函数 : 能够把函数当成参数传递的就是高阶函数 (map ,filter ,reduce , sorted)
# map
"""
map(func,iterable)
功能: 处理数据
	把iterable中的数据一个一个拿出来,扔到func做处理,通过调用迭代器来获取返回值
参数:
	func : 函数(内置函数,自定义函数)
	iterable : 可迭代性对象 (容器类型数据,range对象,迭代器)
返回值:
	迭代器
"""
# (1) 把列表中的元素都变成整型
lst = ["1","2","3","4"]
lst_new = []
for i in lst:
	lst_new.append(int(i))
print(lst_new)
# 用map改写
from collections import Iterator,Iterable
it = map(int,lst)
print(isinstance(it,Iterator))
"""
代码解析:
	第一次调用迭代器
		先把列表中的第一个元素"1"拿出来扔到int中做强转,变成整型1返回出来
	第二次调用迭代器
		先把列表中的第一个元素"2"拿出来扔到int中做强转,变成整型2返回出来
	第三次调用迭代器
		先把列表中的第一个元素"3"拿出来扔到int中做强转,变成整型3返回出来
	第四次调用迭代器
		先把列表中的第一个元素"4"拿出来扔到int中做强转,变成整型4返回出来
"""
# 1.调用迭代器 next
print(next(it))
print(next(it))
print(next(it))
print(next(it))
# print(next(it)) error
# 2.调用迭代器 for
print("<======>")
it = map(int,lst)
for i in it:
	print(i)
# 3.调用迭代器 for + next
print("<======>")
it = map(int,lst)
for i in range(3):
	print(next(it))
# 4.强转迭代器 => 列表
it = map(int,lst)
print(list(it))
# (2) [1,2,3,4] => [2,8,24,64]
# print(1 * 2 ** 1)
# print(2 * 2 ** 2)
# print(3 * 2 ** 3)
# print(4 * 2 ** 4)
# 1 << 1
# 2 << 2
# 3 << 3
# 4 << 4
lst = [1,2,3,4]
lst_new = []
for i in lst:
	lst_new.append(i << i)
print(lst_new)
# map改写
def func(n):
	print(1111)
	return n << n
it = map(func,lst)
print(list(it))
"""
只有在调用迭代器的时候,才会真正触发map函数中的所有内容;不调用不触发;
强转迭代器时,把可以调用的所有数据都放到列表中
第一次调用时:
	把1拿出来,扔func当中做处理,返回2,
第二次调用时:
	把2拿出来,扔func当中做处理,返回8,
第三次调用时:
	把3拿出来,扔func当中做处理,返回24,
第四次调用时:
	把4拿出来,扔func当中做处理,返回64,
到此列表[2,8,24,64]
注意点:形参和返回值必须写;
"""

# (3) 给你一个列表["a","b","c"] => [97,98,99]
# 字典的键值翻转操作
dic = {97:"a",98:"b",99:"c"}
dic_new = {}
for k,v in dic.items():
	# print(k,v) # 97 a | 98 b | 99 c
	dic_new[v] = k # dic_new["a"] = 97
print(dic_new)
lst = ["a","b","c"]
lst_new = []
for i in lst:
	lst_new.append(dic_new[i])
print(lst_new)
# map改写
print("<========================>")
lst = ["a","b","c"]
lst = ["c","b","a"]
lst = ("c","b","a")
# func 实现字典的翻转,通过给与a,b,c三个键,得到对应的ascii码,通过list强转得到列表
def func(n):
	print(n)
	dic = {97:"a",98:"b",99:"c"}
	dic_new = {}
	for k,v in dic.items():
		dic_new[v] = k
	print(dic_new) # {'a': 97, 'b': 98, 'c': 99}
	return dic_new[n]

it = map(func,lst)
print(list(it))

5. reduce高阶函数

# ### reduce
"""
reduce(func,iterable)
功能: 计算数据
	把iterable中的前两个数据扔到func函数中做计算,把计算的结果和iterable中第三个值在继续扔到func中做计算
	以此类推 ...
	最后返回计算的结果
参数:
	func: 自定义函数
	iterable : 可迭代对象 (容器类型数据 range对象 迭代器)
返回值:
	计算的结果
"""
# (1) [7,7,5,8] => 7758
lst = [7,7,5,8]
# 方法一
strvar = ""
for i in lst:
	strvar += str(i)
res = int(strvar)
print(res , type(res))
# 方法二
"""
7 * 10 + 7 = 77
77 * 10 + 5 = 775
775 * 10 + 8 = 7758
"""
# 1.先变成迭代器
it = iter(lst)
# 2.取出两个值
num1 = next(it)
num2 = next(it)
print(num1,num2)
# 做计算
total = num1 * 10 + num2
print(total) # 77
# 3.把计算的结果在和剩下的数据做计算
for num in it:
	total = total * 10 + num
# 4.返回最后的结果
print(total , type(total))

print("<==========>")
# reduce改写
'''从...functools模块, 引入 .. reduce方法'''
from functools import reduce
lst = [7,7,5,8]
def func(x,y):
	# print(x,y)
	return x * 10 + y
res = reduce(func,lst)
print(res)
# 使用lambda 进行改造
print(reduce(lambda x,y: x*10 + y,lst))

# (2) "123" => 123 不使用int的情况下实现该操作;
strvar = "123"
def func(x,y):
	return x * 10 + y
# 把字符串"123" 处理成数字的123
def func2(n):
	# dic = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
	dic = {}
	for i in range(10):
		dic[str(i)] = i
	return dic[n]
it = map(func2,strvar)
# res = reduce(func,it)
# print(res,type(res))
# 简写
print(reduce(lambda x,y: x*10 + y,it))

6. filter高阶函数

# ### filter
"""
filter(func,iterable)
功能: 过滤数据
	在自定义的函数中,
		如果返回True, 该数据保留
		如果返回False,该数据舍弃
参数:
	func: 自定义函数
	iterable : 可迭代对象 (容器类型数据 range对象 迭代器)
返回值:
	迭代器
"""
# 1.只要列表中所有的偶数
lst = [1,2,34,5,65,6,56,7,56,756,7567,11]
lst_new = []
for i in lst:
	if i % 2 == 0 :
		lst_new.append(i)
print(lst_new)
# filter改写
def func(n):
	if n % 2 == 0:
		return True
	else:
		return False
it = filter(func,lst)
print(list(it))
# 使用lambda 改写
it = filter(lambda n :True if n % 2 == 0 else False , lst)
print(list(it))
print(list(filter(lambda n :True if n % 2 == 0 else False , lst)))

7. sorted高阶函数

# ### sorted
"""
sorted(iterable,key=函数,reverse=False)
功能:排序数据
参数:
	iterable : 可迭代对象 (容器类型数据 range对象 迭代器)
	key      : 指定函数(自定义/内置)
	reverse  : 是否倒序
返回值:
	列表
"""
tup = (-90,89,78,3)
# 1.从小到大
res = sorted(tup)
print(res,type(res))
# 2.从大到小
res = sorted(tup,reverse = True)
print(res,type(res))
# 3.按照绝对值进行排序
tup = (-90,-100,1,2)
res = sorted(tup,key=abs)
print(res)
"""
1 => abs(1) => 1
2 => abs(2) => 2
-90 => abs(-90) => 90
-100 => abs(-100) => 100
"""
# 4.按照自定义函数进行排序
tup = (19,23,42,87)
"""
42 % 10 2 => 42
23 % 10 3 => 23
87 % 10 7 => 87
19 % 10 9 => 19
"""
def func(n):
	print(n)
	return n % 10
lst = sorted(tup,key = func)
print(lst)
# 5.任意的容器类型数据都可以通过sorted排序
container = "abc"
container = [1,2,3]
container = (1,2,3)
container = {"你好","王文","你真帅"}
container = {"caixukun","xiaozhan","zhaoshenyang","wangyibo"}
container = {"ww":"英俊帅气","zxy":"猥琐抠脚","zwl":"斯文败类"} # 排的是字典的键
print(sorted(container))
"""
# 总结:
sorted (推荐使用sorted)
	(1) 可以排序所有的容器类型数据
	(2) 返回一个新的列表
sort
	(1) 只能排序列表
	(2) 基于原来的列表进行排序
"""

8. 小练习

# 1.用map来处理字符串列表,把列表中所有人都变成 leader ,比方alex_leader
name = ['oldboy', 'alex', 'wusir']
"""
it = map(lambda n : n+"_leader",name)
print(list(it))
"""
# 2.用map来处理下述 listvar ,要求得到新列表,每个元素名字加后面加_leader
listvar = [{'name':'alex'},{'name':'wusir'}]
def func(n):
	# print(n)
	# n["name"] + "_leader"
	# 方法一
	# return n["name"] + "_leader"
	# 方法二
	n["name"] += "_leader"
	return n
it = map(func,listvar)
print(list(it))
# 3.用filter来处理,得到股票价格大于20的股票名字
shares={
   	'IBM':36.6,
   	'Lenovo':23.2,
  	'oldboy':21.2,
        'ocean':10.2,
	}
# 方法一
def func(n):
	if shares[n] > 20:
		return True
	else:
		return False
# 方法二
def func(n):
	if shares[n] > 20:
		return True
# 方法三
def func(n):
	return shares[n] > 20
it = filter(func,shares)
print(list(it))
# 方法四
print(list(filter(lambda n : shares[n] > 20,shares)))

# 4.有下面字典:
portfolio=[
	{'name':'IBM','shares':100,'price':91.1},
	{'name':'AAPL','shares':20,'price':54.0},
	{'name':'FB','shares':200,'price':21.09},
	{'name':'HPQ','shares':35,'price':31.75},
	{'name':'YHOO','shares':45,'price':16.35},
	{'name':'ACME','shares':75,'price':115.65}
]
# a.获取购买每只股票的总价格(乘积),迭代器中[9110.0, 1080.0 ,......]
def func(n):
	return n["shares"] * n["price"]
it = map(func,portfolio)
print(list(it))
# lambda
print(list(map(lambda n : n["shares"] * n["price"] ,portfolio)))
# b.用filter过滤出price大于100的股票。
def func(n):
	if n["price"] > 100:
		return True
it = filter(func,portfolio)
print(list(it))
# 方法二
print(list(filter(lambda n : n["price"] > 100 , portfolio )))
# 5.将listvar 按照列表中的每个字典的values大小进行排序,形成一个新的列表。
listvar = [
	{'sales_volumn': 0},
	{'sales_volumn': 108},
	{'sales_volumn': 337},
	{'sales_volumn': 475},
	{'sales_volumn': 396},
	{'sales_volumn': 172},
	{'sales_volumn': 9},
	{'sales_volumn': 58},
	{'sales_volumn': 272},
	{'sales_volumn': 456},
	{'sales_volumn': 440},
	{'sales_volumn': 239}
]
def func(n):
	return n["sales_volumn"]
lst = sorted(listvar,key=func)
print(lst)
# 方法二
print(sorted(listvar,key=lambda n : n["sales_volumn"]))

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 深入了解python高阶函数编写与使用

    目录 1.变量可以指向函数 2.函数名也可以是变量. 3.传入函数 总结 何为高阶函数,以实际代码为例子一步步深入概念. 1.变量可以指向函数 以abs()为例: >>>abs(-10) 10 但是只写abs呢? >>>abs <built-in function abs> abs(-10)是调用函数而abs是函数本身 . 把函数本身赋给变量呢? >>>f=abs >>>f <built-in function ab

  • python中三种高阶函数(map,reduce,filter)详解

    map(function,seq[,seq2]) 接收至少两个参数,基本作用为将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列 返回一个可迭代的map对象 function:函数对象 py2中可为None,作用等同于zip() 如: py3中不可为None,None是不可调用.不可迭代对象 seq:可迭代对象,可以传一个或多个 # 传一个: def func(i):return i*2 print([i for i in map(func,[1,'2'])]) # [2,'22']

  • 简析Python函数式编程字符串和元组及函数分类与高阶函数

    目录 函数式编程中的字符串 不变类型元组 普通元组的声明与访问 函数式的分类 any() .all() .len().sum() 对比学习 zip().reversed().enumerate() 高阶函数 函数 max 和 min() map 函数 filter 函数 sorted 函数 同一需求的不同效率问题 函数式编程中的字符串 在函数式编程中,经常用到 Python 字符串,因其是不可变数据结构. 字符串本身是一个对象,具备很多对象方法,与常识中函数的使用不太相同,例如下述代码 my_s

  • Python 的迭代器与zip详解

    目录 关于迭代器 关于zip 总结: 首先抛出一个困扰本人许久的问题: nums = [1,2,3,4,5,6] numsIter = iter(nums) for _ in zip(*[numsIter]*3): print(_) print(list(numsIter)) 则控制台输出如何? 关于迭代器 1.对于支持迭代的集合对象,可以创建其迭代器对象.迭代器对象储存了可迭代对象的地址和遍历的位置,迭代器对象从集合的第一个元素开始访问,所有的元素被访问完迭代器被消耗(仍然占地址),但清空储存

  • Python 内置高阶函数详细

    目录 1.Python的内置高阶函数 1.1 map() 1.2 reduce() 函数 1.3 reduce() 函数 1.4 sorted() 函数 1.Python的内置高阶函数 1.1 map() map()会根据提供的函数对指定序列做映射 语法格式: map(function, iterable, ...) 第一个参数function以参数序列中的每一个元素调用function函数, 第二个参数iterable一个或多个序列 返回包含每次 function 函数返回值的新列表. 示例代

  • Python生成器与迭代器详情

    目录 1.生成器 2.迭代器与可迭代的生成器 1.生成器 现在可以通过生成器来直接创建一个列表,但是由于内存的限制,列表的容量肯定是有限的,如果我们需要一个包含几百个元素的列表,但是每次访问的时候只访问其中的几个,那剩下的元素不使用就很浪费内存空间. 这个时候生成器(Generator)就起到了作用,他是按照某种算法不断生成新的数据,直到满足某一个指定的条件结束 得到生成式的方式有如下几种: 通过列表生成式来得到生成器,示例代码如下: g = (x for x in range(10)) # 将

  • python基础之迭代器与生成器

    目录 1. 迭代器 1.1 迭代器的使用 1.2 创建类的迭代器 2. 生成器 2.1 生成器的使用 2.2 生成器表达式 总结 1. 迭代器 1.1 迭代器的使用 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退.迭代器有两个基本的方法:iter() 和 next().字符串,列表或元组对象都可用于创建迭代器. iter(iterable):用于返回可迭代对象的一个迭代器. next(iterator): 从迭代器iterator中获取下一条记录.如果无

  • python迭代器,生成器详解

    目录 迭代器 生成器 总结 迭代器 聊迭代器前我们要先清楚迭代的概念:通常来讲从一个对象中依次取出数据,这个过程叫做遍历,这个手段称为迭代(重复执行某一段代码块,并将每一次迭代得到的结果作为下一次迭代的初始值). 可迭代对象(iterable):是指该对象可以被用于for-in-循环,例如:集合,列表,元祖,字典,字符串,迭代器等. 在python中如果一个对象实现了 __iter__方法,我们就称之为可迭代对象,可以查看set\list\tuple-等源码内部均实现了__iter__方法 如果

  • Python全栈之迭代器和高阶函数

    目录 1. lambda表达式 2. locals和globals 3. 迭代器 小提示: 4. map高阶函数 5. reduce高阶函数 6. filter高阶函数 7. sorted高阶函数 8. 小练习 总结 1. lambda表达式 # ### 匿名函数 : lambda表达式 """ 概念: 用一句话来表达只有返回值的函数 语法: lambda 参数 : 返回值 特点: 简洁,高效 """ # (1) 无参的lambda表达式 def

  • Python中常用的高阶函数实例详解

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. lambda 当在使用一些函数的时候,我们不需要显式定义函数名称,直接传入lambda匿名函数即可.lambda匿名函数通常和其他函数搭配使用. 比如可以直接使用如下的lambda表达式计算当x=3时,y = x * 3 + 5的函数值. In [1]: (lambda x: x * 3 + 5)(3) Out[1]: 14 map map函数将一个函数和序列/迭代器(可以传

  • Python高阶函数、常用内置函数用法实例分析

    本文实例讲述了Python高阶函数.常用内置函数用法.分享给大家供大家参考,具体如下: 高阶函数: 允许将函数作为参数传入另一个函数: 允许返回一个函数. #返回值为函数的函数 sum=lambda x,y:x+y sub=lambda x,y:x-y calc_dict={"+":sum,"-":sub} def calc(x): return calc_dict[x] print(calc('-')(5,6)) print(calc('+')(5,6)) #参数

  • python lambda函数及三个常用的高阶函数

    进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量.但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数.该函数就是Python中的Lambda函数,下面就来为大家解析python-lambda函数,三个常用的高阶函数. 为什么要使用Python Lambda函数? 匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的.因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一

  • Python高阶函数与装饰器函数的深入讲解

    本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧 高阶函数 1.可以使用函数对象作为参数的函数 2.或可以将函数作为返回值的函数 3.函数对象:定义好的函数,使用函数名调用(不要加括号) #将函数作为参数的高阶函数,通过传入不同的函数,可以使执行的结果不同 4.内置高阶函数 (1)map数据映射函数 map函数接收的是两个参数,一个函数,一个序列,其功能是将序列中的值处理再依次返回至列表内.其返回值为一个迭代器对象 (2)reduce

  • python 高阶函数简单介绍

    把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现.函数式编程就是指这种高度抽象的编程范式. 1.体验高阶函数 在Python中,abs()函数可以完成对数字求绝对值计算. abs(-10) # 10 round()函数可以完成对数字的四舍五入计算. round(1.2) # 1 round(1.9) # 2 需求:任意两个数字,按照指定要求整理数字后再进行求和计算. 方法1 def add_num(a, b): return abs(a) + abs(b) result =

  • Python常见内置高阶函数即高阶函数用法

    目录 1.什么是高阶函数? 2.高阶函数-map.filter.reduce 2.1map函数 2.2filter函数 2.3reduce函数 1.什么是高阶函数? 高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数. 参数为函数: #参数为函数 def bar(): print("in the bar..") def foo(func): func() print("in the foo

  • python高阶函数使用教程示例

    目录 一.高阶函数 函数定义 函数名可作为返回值.也可作为参数 (1)函数名作为参数 (2)函数名作为返回值 二.常用的高阶函数 (1)map(function,iterable) (2)filter(function, iterable) (3)reduce(function, iterable) 一.高阶函数 函数定义 python中,函数名是变量,下方这个method函数名看成变量,指向一个计算的函数!因此函数名其实就是指向函数的变量,故变量可指向函数: 变量可指向函数,且函数的变量可接受

随机推荐