一、函数的定义与调用
1.定义函数
函数要有三个重要元素:函数名,以及函数参数和返回值。
def fun1(): # 定义函数
print('这是一个函数')
2.调用函数
函数定义时,不立刻执行,在调用时执行。
fun1() # 调用函数
二、函数的形参与实参
函数头括号里的参数称为形式参数,简称形参,调用函数时传入实际参数,简称实参,按照位置与形参一一对应,所以他叫位置参数。
def sumdata(sum1,sum2): # sum1,sum2 形式参数,简称形参
return sum1 + sum2
print(sumdata(1,2)) # 1,2 实际参数,简称实参
print(sumdata(1,2,3)) # 实参的数量大于形参的数量,报错
print(sumdata(1)) # 实参的数量小于形参的数量,报错
三、函数的缺省值
- 函数定义时可以给每个形参设置一个缺省值;
- 如果用户不输入实参,则函数使用缺省值;
- 如果用户输入了实参,则使用用户输入的值。
def sumdata2(sum1=100,sum2=80): # 函数定义时可以给每个形参设置一个缺省值
return sum1 + sum2
print(sumdata2()) # 如果用户不输入实参,则函数使用缺省值
print(sumdata2(1,2)) # 如果用户输入了实参,则使用用户输入的值
print(sumdata2(sum1=99,sum2=98)) # 完整写法
print(sumdata2(99,sum2=98)) # 先简略写法,后完整写法
print(sumdata2(sum1=99,98)) # 先完整写法,后简略写法,报错
四、函数的返回值
- return用来传递返回值,函数可以有返回值,也可以没有返回值;
- return之后的语句是不可达语句;
- 函数可以return多个值,有多个值时,以元组形式返回。
def sumdata3(sum1,sum2):
return sum1 + sum2,sum1 * sum2
print(sumdata3(2,10))
print(*sumdata3(2,10)) # *解包,将元组里的值分开展示
五、*args、**kwargs
- 可变长度参数*args,允许用户传任意个参数,返回的是元组;
- 关键字参数**kwargs,允许用户以定义变量的方式传任意个参数,所有传入的key=value,返回字典 ;
- 星号是关键字,args,kwargs是变量名。