函数定义
def 函数名(形参 . . . )
函数体
1. 函数参数
- 返回值:可以有一个或多个
- 形参:支持默认形参、关键字形参、可变参数形参等
1.1 必须参数
调用时传入的参数必须与定义时相同。
# a,b 是必须参数或者叫位置参数
def fun(a,b):
return a,b,a+b
调用:
print(fun(2,3))
输出:
(2, 3, 5)
2.2 默认参数
调用时可以选择使用默认参数或者可选择直接给定参数的值
def fun(a,b=10):
return a+b
调用:
print(fun(5))
输出:
15
print(fun(5,5))
输出:
10
1.3 关键字参数
使用指定某个关键字的方式定向赋值。
def fun(a=1,b=2,c=3,d=4):
print(a,b,c,d)
调用:
fun(d = 4)
输出:
1 2 3 4
1.4 不定长参数 *args
在调用时可以传入若干参数,函数会以元组(tuple)的形式导入形参。
def fun(*args):
print(type(args),args,args[0])
调用:
fun(1,2,3,4)
输出:
<class 'tuple'> (1, 2, 3, 4) 1
1.5 不定长参数 **kwargs
可以接收成对的关键字参数,以字典的方式导入形参。
def fun(**kwargs):
print(type(kwargs),kwargs)
调用:
fun(a=1,b=2)
输出:
<class 'dict'> {'a': 1, 'b': 2}
调用:
fun(x=10,y=20,z=30)
输出:
<class 'dict'> {'x': 10, 'y': 20, 'z': 30}
匿名函数
lambda 形参:表达式
匿名函数一般用于功能比较简单函数中。
lambda x,y:x+y
等价于
def fun(x,y):
return x+y
匿名函数使用时,可指定一个返回值用于该函数的调用。
f = lambda x,y,:x+y
调用:
print(f(2,3))
输出:
5
递归函数
通过自身调用自身实现一些特殊的计算需求。如,求阶乘
def fun(n):
if(n == 1):
return 1
return n*fun(n-1)
调用:
print(fun(5))
输出:
120
在设计递归时一定要注意边界条件的设计。