函数 高阶函数
函数
- 是组织好的,可重复使用
内建函数:eg:基础函数print input 高阶函数map reduce
自定义函数
第三方工具包
- 定义
def fun(param):
"""说明文档"""
函数体
return
def:定义函数的常用关键字
fun:函数名
param:参数(可有可无)
说明文档:函数的注释,写在函数中,可用help(fun)获取说明文档内容
调用
fun(param)
- 匿名函数
lambda:定义匿名函数的关键字,较简洁
# lambda 参数:函数体
# 参数可以是多个,函数体只能写一行
lambda x:x+1
# 调用
a = lambda x:x+1
- 返回值
可返回多个值 return a,b,c (会被当作成一个元组返回)
- 函数体
注意缩进
函数体中可以继续定义函数
pass:占位符,无意义
- 参数
必备参数:按顺序传入参数
关键字参数:以"a=1,b=2"的形式传入参数,可交换位置
默认参数:在定义时指定值,没有传入时为默认值
不定长参数:*args(args为数组名,以元组形式存),**kwargs(以字典形式存,key=value)
参数位置
def fun(必备,关键,默认,不定长)
- 全局、局部变量
函数内部优先使用局部,在函数中要使用全局变量,用关键字global修饰使用
可变数据为全局变量在函数中可以不用return和global,但是不推荐
- 函数本身可做参数和返回值
eg:def B(A): 完全ok
高阶函数
变量可以指向函数
函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数
def add(x, y, f):
return f(x) + f(y)
print(add(-5, 6, abs))
# f=abs即变量指向函数
map函数
接受两个参数,一个是函数,一个是Iterable(迭代)对象
此函数将传入的函数依次作用到迭代对象的每个元素,把新的返回
# f(x)=x平方
def f(x):
return x * x
r = map(f, [1, 2, 3, 4])
print(list(r))
# [1, 4, 9, 16]
reduce函数
要导包
from functools import reduce
在map基础上加
reduce(f,[x1,x2,x3,x4])
# 等于
f(f(f(x1,x2),x3),x4)
filter函数
过滤作用,单独计算,根据返回值时True或False决定是保留还是去掉
sorted函数
产生个新的序列,可接收一个key函数实现自定义函数
对字符串排序,按照ASCII的大小来的
eg:key=str.lower (首字母变小写再排序)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~