def函数的使用
def函数
1. 定义 如果在开发的过程中,需要使用某一部分代码,但是代码的相似度很高,为了提高代码的复用,把具有独特功能的代码块进行封装,组成一个小的功能模块,这就是函数
2. 函数的格式
def 函数名(参数1,参数2):
函数体注意点:
1.def是声明,在创建函数
2.函数名,方便调用
3.函数体,真正的功能模块
4.函数的调用,函数名([参数])
3 函数的参数与返回值 3.1 有参数,有返回值
3.2 有参数,无返回值
【python|def函数的使用】3.3 无参数,无返回值
3.4 无参数,有返回值
注意点:
1.python 中没有强制要求一定要有返回值
2.返回值和参数按照具体的需求来
3.如果return返回多个数据,数据会被自动打包成元组
4.定义的时候,函数小括号中的参数,用来接收参数使用,形参
5.调用的时候,函数小括号中的参数,用来传递参数给函数使用,实参
4. 匿名函数 创建小型函数
4.1 语法规则
lambda 参数1,参数2:表达式
print((lambda x,y,z:sorted([x,y,z])[-1])(22,11,33))
4.2 调用
1.在sort等方法中,直接定义,方法在执行的时候,自动调用
2.(lambda表达式)(实参1,实参2,。。。)
3.匿名函数自动返回表达式的执行结果,自动将返回值抛出
4.3 map 将函数应用在可迭代对象的每一个元素上
list1 = [1,2,3,4,11,22,5,6]def fun1(x):
print(x)
return
print(list(map(lambda x:x+5,list1)))
4.4 filter 过滤
将符合结果为True的结果返回
print(list(filter(lambda x:x%2==0,list1)))
4.5 reduce 实现汇总的效果
list1 = [1,2,3,4,11,22,5,6]
from functools import reduce
print(reduce(lambda x,y:x*y,list1,100))
5. LEGB原则 5.1 局部变量
1.局部变量,是在函数的内部定义
2.局部变量的使用范围是,在当前的函数体内正常使用,在函数的外部不可以使用
3.相同的局部函数之间互不影响,因为它的作用域就是当前函数
5.2 全局变量
num = 100
def func():
'''
修改全局变量
:return:
'''
globalnum
print('--------->修改之前的全局变量:',num)
num = 1
print('--------->修改之后的全局变量:',num)if __name__ == '__main__':
print('--------->修改之前的全局变量:',num)
func()
print('--------->最后查看num:', num)注意点:
1.全局变量定义在所有的函数之外,所有的函数都可以使用全局变量
2.如果在函数中需要对全局变量进行操作,需要先声明使用的是全局变量
6. 函数的参数注意点 6.1 缺省参数
def func1(param1,param2=None,param3=None):
print(param1)
print(param2)
print(param3)if __name__ == '__main__':func1(1,2)注意点:
1.在形参中默认有值的参数,叫做缺省参数
2.缺省参数一定要在参数列表的最后面
3.缺省参数的规则是,有就用传递的,没有就使用默认的
6.2 不定长参数
def func2(*args,**kwargs):
print('-'*50,args)
print('-'*50,kwargs)def func3(name,phone=None,*args,**kwargs):
print('name',name)
print('phone',phone)
print(args)
print(kwargs)if __name__ == '__main__':
# func2()
# func2(1,2,3,4)
# func2('jave',num='张三',age='18')func3('zs')
func3('zs','qh','1123351')注意点:
1.*args将所有的未命名的参数收集,并打包成元组
2.**kwargs将所有的kay=value形式的参数,收集,并且打包成字典
3.如果存在缺省参数,建议,缺省参数放到*args后面,但是**kwargs肯定在列表参数的最后一位
推荐阅读
- python|计算机二级Python真题(十二)
- python题库|python二级考试第一套选择题
- 深度学习|(小土堆)PyTorch深度学习
- 人脸识别|yolov5人脸识别(yolov5-facenet-svm)
- Python基础语法2(函数)
- 各专栏目录|pytorch 学习笔记目录
- YOLOv5解析|YOLOv5解析 | 第二篇(用YOLOv5训练自己的数据集(超级详细完整版))
- 《告别Bug》|成功解决(WARNING: There was an error checking the latest version of pip.)
- 《告别Bug》|成功解决(TypeError: the JSON object must be str, bytes or bytearray, not dict)