概念
函数就是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称去完成对应的需求
定义函数
python
def 函数名(参数):
代码1
......
return 值
函数名
函数名由编程人员自定义的,满足标识符命名规则即可
参数
形参
在定义函数是定义接收数据的参数
实参
函数调用时,传入的真实数据
形式
位置参数
调用函数时根据函数定义的参数位置来传递参数
python
def f(name,age):
print(f"{name} ,age {age} ")
f('zhangsan',18)
关键字参数
通过"键=值"形式加以指定
在函数调用时,如果有位置参数时,位置参数必须在关键字参数前面
python
def f(name,age):
print(f"{name} ,age {age} ")
f(age=18,name="John")
缺省参数
在定义函数的时候,也为参数提供了默认值,如果在调用函数时,不传值,则默认使用定义时使用的值
python
def f(name,age=15):
print(f"{name} ,age {age} ")
f(name="John")
不定长参数
用于不确定调用的时候会传递多少个参数的场景
- 用包裹(packing)位置参数
传进来的所有参数都会被args变量手机,它会根据传进参数的位置合并为一个元组
python
def f(*agrs):
print(agrs)
f("John","18") #('John', '18')
- 包裹关键字传递
python
def f(** agrs):
print(agrs)
f(name="zhangsan",age=18)
返回值
使用关键字return
还有退出当前函数的作用
返回值可以作为参数传递
调用函数
函数必须先定义后使用
当调用函数时,解释器回到定义函数的地方去执行下方缩进的代码,当这些代码执行完,回到调用函数的位置,继续向下执行
说明文档
help函数:查看函数的说明文档
python
def 函数名(参数):
"""说明文档"""
代码
.....
作用域
变量生效的范围
局部变量
在函数体内部,临时保存数据,也就是当函数调用完成后,会销毁局部变量
全局变量
- 在函数体内、外都生效的变量
- 在函数中,如果去使用 a= xx 去修改全局变量,那么a这个全局变量,并不会发生改变 ,只是等于在函数中申请了一个新的局部变量
- 如果要在函数中去修改全局变量,使用的语法是,
python
global a
a=200
交换变量
python
a,b =1,2
a,b = b,a
引用
在python中,值是靠引用来传递来的,
用id()来判断两个变量是否为同一个值的引用,返回的是内存的地址标识
递归函数
特点
函数内部自己调用自己
必须有出口
python
def add(num):
if num ==1 :
return 1
return num+add(num-1)
print(add(10))