一般格式
Def func(a,b=1,c): #关键字 def 定义方法名,参数
Print(a,b,c) #方法体 此函数具体实施的代码
Func(c=1,a=1) #使用方法 ,方法+参数
定义和其他语言,比如JAVA等大致相同,只是有一点需要强调的是这里面的参数类型没有指明。python是变量动态类型管理,只有在编译过程时才根据代码对变量类型进行确定。
单*和双**操作
当需要进行多参数操作时,可用*进行操作,表示余下全部元素以集合形式进行汇总至某个元素变量中
Def get(a,b,*scrores):
print(a,b,scrores)
get(1,2,3,4,5) #a=1 b=2 scoroes=[3,4,5]
但注意,进行操作时,传入的必须时单个的值,如果传入元组等数据结构时,需要进行解包,同样解包符号也为*
Def avg(*scrores):
Return sum(scoroes)/len(scores)
A=[1,2,3}
Avg(*A) #必须有*,否则报错
当传入的是字典表时,使用**,使用方法和单*相似
employee={
"salary":100,
"age":23
}
def use(**employee):
print(employee)
use(**employee)
lambda 匿名函数
a=lambda x,y :x+y(1,2) #直接使用
f=lambda name:print(name) #给予方法名称
f2=lambda x,y :x+y #:后面代表返回值
在python的语法中,万物皆可对象,匿名函数也不例外。在需要重复次数较少且较为简单的逻辑,匿名函数为我们的使用提供了极大的便利。
map和filter
这里顺便就欸少一下和函数关系比较大的2个关键字,filter 是通过生成 True 和 False 组成的迭代器将可迭代对象中不符合条件的元素过滤掉;而 map 返回的则是 True 和 False 组成的迭代器
x=[1,2,3]
result=list(map(lambda x:x+5,x)) #需要将生成元素list,不然给出的是储存地址
print(result) #通过迭代将X的每个元素计算后的每个元素放入函数中
l=list(range(1,11))
def even_number(x):
return x%2==0
res=filter(even_number(),l) #将l的每个数值放入函数中判断是否满足