1、函数定义
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
2、特性
1、减少重复的代码
2、使程序变的可扩展
3、使程序变得可维护
3、函数语法
def func():# 函数名
print("my first function...") # 函数内容
func() # 调用函数
4、函数参数
1、形参和实参
def func(x, y): #x 和 y 是形参 res = x * y print(res) a = 1 b = 2 func(a, b) # a和b就是实参
2、默认参数
def func(name, age, country = "CN"): print("name:{0}, age:{1}, country:{2}".format(name,age,country)) func("xu", "10") func("du", "10", "America")
打印的结果:name:xu, age:10, country:CN
name:du, age:10, country:America
默认参数是country,如果你的实参没有写的话,country默认就是CN,如果写了的话,country就是你写的值
3、关键参数
正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可(指定了参数名的参数就叫关键参数),但记住一个要求就是,关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后
def func(name, age, country): print("name:{0}, age:{1}, country:{2}".format(name,age,country)) func('xu', '10', 'CN') func("xu", country="CN", '10') #错误调用,因为位置参数要放在关键参数的后面
优先级:位置参数 > 关键参数
4、非固定参数
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
*args:
def func(name, age, *args): print(name, age, args) func('xu', 10, 'Python', 'study')
打印结果:xu 10 ('Python', 'study')
**kwargs
def func(name, age, *args, **kwargs): print(name, age, args, kwargs) func('xu', 10, 'Python', 'study', province = 'SiChuan', Sex = "Man")
打印结果:xu 10 ('Python', 'study') {'province': 'SiChuan', 'Sex': 'Man'}
可以看出,*args是以元组的方式存储, kwargs是以字典的形式存储