函数简介
- 函数也是一个对象
- 函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用
- 函数中的代码不会立刻执行,需要调用
- 可以在函数中储存功能单一且需要多次使用的代码块,以便重复使用
- 注意:函数名必须符合标识符的规范(可以包含字母、数字、下划线但是不能以数字开头)
例如:def fun(形参…):
fun是函数对象 fun()是调用函数 - 函数的创建规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。(转载自菜鸟教程)
函数的参数
- 形参:形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值
- 实参:实参(实际参数)指定了形参,那么在调用函数时必须传递实参,实参将会赋值给对应的形参,简单来说有几个形参就要有几个实参
实战演练
参数可以有很多种
整数
字符串
布尔值
列表
元组
字典
参数的传递方式
- 位置传参:将对应位置的实参传给对应位置的形参
- 关键字传参:可以不按形参顺序传递,根据形参名传递
- 默认值:设置形参时直接设置默认值
- 混合传参:将位置传参和关键字传参混合使用时需要注意,位置传参需要设置在关键字传参之前
不定长参数
- 定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中
- 带*号的形参只能有一个,可以和其他参数配合使用
- *形参只能接受位置参数,不能接受关键字参数
- **形参可以接收其他的关键字参数,它会将这些参数统一保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
- **形参只有一个,并且必须写在所有参数的后面
- 当*与关键字传参一起使用时关键字传参要放后面,顺序:位置传参 *,关键字传参
*args不定长传参(位置传参)