### -函数 ``` # ###函数 (1)函数的含义: 功能 (包裹一部分代码 实现某一个功能 达成某一个目的) (2)函数特点: 可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 (3)函数基本格式 (4)函数命名 ``` ``` # ###函数参数 : 函数运算时需要的值 (1)函数参数概念及分类 函数参数:调用时需要传递的数据. 函数参数大类分为形参和实参: 形参意思: 函数定义时的参数 实参意思: 函数调用时的参数 形实关系:函数调用时,形参和实参个数需要一一对应 形参种类: 普通参数(位置参数),默认参数,普通收集参数,命名关键字参数,关键字收集参数 实参种类: 普通实参,关键字实参 (2)收集参数: 普通收集参数:专门用于收集多余的普通实参,形成一个新的元组 语法:参数前面加* 例:*args 关键字收集参数:专门用于收集多余的关键字实参,形成一个新的字典 语法:参数前面加** 例:**kwargs (3)命名关键字参数:定义时放在*号后面的参数,调用时强制必须指定关键字实参才能调 语法:(*,x) x是命名关键字参数 (4)*和**的魔术用法:打包和解包 *和**,在函数的定义处,负责打包(把实参都收集过来,放在元组或字典中) *和**,在函数的调用处,负责解包(把容器类型的数据,一个一个拿出来,进行传递) (5)形参声明的位置顺序: 普通参数 -> 默认参数 -> 收集参数 -> 命名关键字参数 -> 关键字收集参数 (6)对于任意函数,都可以通过 def func(*args, **kw) 来获取所有参数 ``` ### -return ``` return返回值 为这个函数返回一个结果 (return返回值可有可无 按照需求选择) 注意:执行return语句之后,函数执行结束 ``` ### ____doc____ ``` __doc__或者help查看文档 ``` ### -内置函数 ``` abs 绝对值函数 round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!) sum 计算一个序列得和 max 获取一个序列里边的最大值 min 获取一个序列里边的最小值 pow 计算某个数值的x次方 range 产生指定范围数据的可迭代对象 bin 将10进制数据转化为二进制 oct 将10进制数据转化为八进制 hex 将10进制数据转化为16进制 chr 将ASCII编码转换为字符 ord 将字符转换为ASCII编码 eval 将字符串当作python代码执行 eval 将字符串当作python代码执行(功能更强大) repr 不转义字符输出字符串 input 接受输入字符串 hash 生成哈希值 ``` ### 参数练习 ``` def f1(a, b, c=0, *args, **kw): print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) def f2(a, b, c=0, *, d, **kw): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) 以上两个函数 打印结果 #(一) f1(1, 2) f1(1, 2, c=3) f1(1, 2, 3, 'a', 'b') f1(1, 2, 3, 'a', 'b', x=99) f2(1, 2, d=99, ext=None) #(二) args = (1, 2, 3, 4) kw = {'d': 99, 'x': '#'} f1(*args, **kw) #(三) myargs = (1, 2, 3) mykw = {'d': 88, 'x': '#'} f2(*myargs, **mykw) #(四) def f1(a, b, c=0, *args,d,**kw): print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) print(d) f1(1,2,3, 'a', 'b',d=67, x=99,y=77) ```