Python - 函数定义 参数形式
<!-- [toc] -->
函数
- def 函数定义关键字
- 形参中 不需要声明类型 方便许多
- 相比其他编程语言,它拥有多种传参方式,非常方便
定义
def 函数名(形参):
"""说明文档 可以用help(函数名)查询"""
#函数体
#注意缩进
函数名(实参)
位置参数
- 形参、实参的位置要对应
- 一 一对应
关键字参数
- 指定参数赋值
- 在给实参时加入一个赋值语句,指定某个形参收到值
- 调用时,一定注意,先传入位置变量后,才能关键字参数,使用顺序不能反了,反了报错。
#如这个例子
def sum(x,y):
print(x+y)
sum(y=89,x=123)
默认参数定义
def sum(a=123,b=345)
这样定义函数头- 在调用时,就可以不传参
- 因为函数默认a为123 ,b为345
可变参数
位置可变参数
- 接受所有位置参数,之后返回元组
- 形参有多少参数,实参就有多少参数
def name(*args):
print(args)
name('这是位置可变参数',1,2,3)
#返回 ('这是位置可变参数', 1, 2, 3)
#一个元组
关键字字典可变参数
- 接受所有关键字参数,之后返回字典
- 相比位置可变参数,多了一个
*
号 - 函数收到的是一个字典
def name(**args):
print(args)
name(a='这是关键字可变参数',b=1,c=2,d=3)
#返回 {'a': '这是关键字可变参数', 'b': 1, 'c': 2, 'd': 3}
#是一个字典 键值对
注意
- 变量不可以在函数外调用
变量定义在函数外,则为全局变量,函数内可用
- 如果必须更改 通常在函数中 声明变量为外部变量
global a
- 通常不建议在函数中更改外部变量
- 如果必须更改 通常在函数中 声明变量为外部变量
函数返回值
- 返回值可以返回多个变量,用逗号分割即可。
- 返回多个参数,接受变量为一个时,变量收到的是一个元组形式的。
- 同上,可以用多参数接受
def name(a,b,c,d):
return a,c
ret = name(a='这是关键字可变参数',b=1,c=2,d=3)
print(ret)
#返回的是 ('这是关键字可变参数', 2)
#字典拆包
a = {'a':1,'b':2,'c':3}
def name():
return a
x,y,z = name()
print(x,y,z,sep='||')
print(a,a[y],a[z],sep='||')
函数递归
- 递归就是套娃
- 递归一定要有出口
递归加法例子
def sum(a):
if a==1:
return 1
return a+sum(a-1) #相当于100+99+98+97 ······ +3+2+1
print(sum(100))#返回 5050