4.1 函数的定义及调用
4.1.1 为什么要调用函数
1、提高代码复用性一抽象出来, 封装为函数
2、将复杂的大问题分解成一-系列小问题,分而治之一模块化设计的思想
3、利于代码的维护和管理
顺序式
抽象成函数
4.1.2 函数的的定义及调用
白箱子:输入–处理-- 输出
三要素:参数.函数体、返回值
1、定义
2、调用
函数名(参数)
4.1.3 参数传递
形参(形式参数) :函数定义时的参数,实际上就是变量名
实参(实际参数) :函数调用时的参数,实际上就是变量的值
1、位置参数
严格按照位置顺序,用实参对形参进行赋值(关联)
一般用在参数比较少的时候
实参与形参个数必须–对应, -个不能多,-一个不能少
2、关键字参数
打破位置限制,直呼其名的进行值的传递(形参=实参)
必须遵守实参与形参数量上一对应
多用在参数比较多的场合
位置参数可以与关键字参数混合使用
但是,位置参数必须放在关键字参数前面
不能为同一一个形参重复传值
3、默认参数
在定义阶段就给形参赋值一该形参的常用值
机器学习库中类的方法里非常常见
调用函数时,可以不对该形参传值
也可以按正常的形参进行传值
默认参数应该设置为不可变类型(数字、字符串.元组)
让参数变成可选的
*4、可变长参数 args
不知道会传过来多少参数*args
该形参必须放在参数列表的最后
实参打散
**5、可变常参数 kwargs
字典实参打散
可变长参数的组合使用
4.1.4 函数体与变量作用域
函数体就是一段只在函数被调用时,才会执行的代码,代码构成与其他代码并无不同
局部变量一仅在函数体内定义和发挥作用
全局变量一外部定义的都是全局变量
全局变量可以在函数体内直接被使用
通过global在函数体内定义全局变量
4.1.5 返回值
1、单个返回值
2、多个返回值——以元组形式
3、可以有多个return语句,一旦其中一个执行,代表了函数运行的结束
4、没有returm语句,返回值为None