Python3 函数(小白版)
一、函数概念
函数是封装一段重复代码的代码块,实现代码复用、简化结构,使用def关键字定义。
# 语法格式def函数名(形参列表):函数体return返回值二、无参函数
没有参数,直接调用。
defhello():print("Hello Python函数")# 调用函数hello()三、有参函数
1. 位置参数(必填参数)
实参按顺序一一对应形参。
defadd(a,b):res=a+breturnresprint(add(3,5))# 82. 关键字参数
调用时指定参数名,顺序可打乱。
definfo(name,age):print(f"姓名:{name},年龄:{age}")info(age=18,name="小明")3. 默认参数
形参设置默认值,不传参使用默认。
默认参数必须放在位置参数后面
defstudent(name,age=18):print(name,age)student("小红")student("小刚",20)四、可变参数
1. *args 不定长位置参数,打包成元组
接收任意多个位置参数。
defsum_all(*args):s=0foriinargs:s+=ireturnsprint(sum_all(1,2,3,4))2. **kwargs 不定长关键字参数,打包成字典
接收任意多个关键字参数。
defdict_info(**kwargs):print(kwargs)dict_info(name="张三",height=175,sex="男")参数顺序规范
**位置参数 > *args > 默认参数 >kwargs
五、return 返回值
return终止函数,带回返回数据;- 无return默认返回
None; - 返回多个数据自动打包成元组。
defcalc(x,y):add=x+y sub=x-yreturnadd,sub a,b=calc(10,3)print(a,b)六、局部变量 & 全局变量
- 局部变量:函数内部定义,仅函数内可用;
- 全局变量:函数外定义,全文件可用;
global:函数内修改全局变量。
num=100defchange():globalnum num=200change()print(num)七、匿名函数 lambda
一行简易函数,格式:lambda 参数:表达式,多用于简单逻辑。
# 普通写法deff(x,y):returnx*y# lambda写法mul=lambdax,y:x*yprint(mul(4,5))常配合map()、sorted()使用:
lst=[1,2,3]res=list(map(lambdax:x**2,lst))print(res)八、函数嵌套 & 闭包
函数里定义新函数,内层函数使用外层变量形成闭包。
defouter(x):definner(y):returnx+yreturninner f=outer(10)print(f(5))九、装饰器(进阶)
在不修改原函数代码前提下,新增功能。
defdecorator(func):definner():print("函数执行前")func()print("函数执行后")returninner@decoratordeftest():print("原函数逻辑")test()十、常用内置函数补充
len()、max()、min()、sum()、map()、filter()都是系统封装好的函数。
# filter过滤li=[1,2,3,4,5]new=list(filter(lambdax:x%2==0,li))print(new)