一.什么是函数/方法/function
组织好的,可重复使用,用来实现单一或相关联功能的代码块。
二. 声明调用函数
#声明
def 方法名(形式参数):
代码块
return 返回值
#调用
函数名()
or
变量 = 函数名(
)
先声明后调用
函数遇到return就会结束
可以在函数内写三个引号,里面写函数的说明,他人或用户可以通过help()函数查看说明
可以通过函数名.__name__
来查看函数名,查看其他属性:dir(函数名)
三.函数的参数
3.1参数分类
- 形式参数(parementer):位于函数括号内的参数
- 实际参数(argument):调用函数时,写在括号内,传给函数的参数
3.2传参方式
- 位置传参(positional):按照参数位置取值
- 关键字传参:标准的变量赋值的过程
- 默认传参:函数预设的默认值
- 参数组传参:可变参数和可变关键字——传入结构化数据类型
默认参数一定位于非默认参数之后
位置参数在关键字参数前
#定义函数
def multi_values (num1, num2 = 100, *args):
print(num1)
print(num2)
print(args)
#调用函数
multi_values(1,2,3,4,5,6) #可变参数
#运行结果
1
2
(3, 4, 5, 6)
可变参数:
- 带有一个*号,代表接收的参数不受限制,不确定参数个数时可以使用
- args约定俗成的命名,可以传空值,输出为一个空元组。
- 可变参数输出或者返回都为元组
- 如果传入的实参时结构数据类型(列表,字典等),需要在实参前加一个 *,不加传入会当做一个元素处理
- 存在多个传参方式时,会按顺序传入。如果可变参数在前,后面的不能使用位置传参。默认参数在可变参数前面,会重新赋值。
#定义函数
def multi_values (**kwargs):
print(kwargs)
#调用函数
multi_values(a =1, b=2, c=3) #可变参数
#运行结果
{'a': 1, 'b': 2, 'c': 3}
可变关键字参数:
- **开头,kwargs = key word arguments约定俗成
- 打印或返回为字典
- 同时出现可变参数和可变关键字参数,可变参数写在前面
推荐参数顺序:
位置———*可变参数——默认参数——关键字参数——**可变关键字参数
四.全局,局部变量
全局变量:当前程序任意位置都可以访问
局部变量:函数体内定义,只有该函数可访问
函数中使用全局变量,需要在函数内global 全局变量名