函数 高阶函数

函数

  • 是组织好的,可重复使用

内建函数: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 (首字母变小写再排序)

posted @   valder-  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示