1.定义函数
函数的作用,简单来说就是可以实现代码复用,易于维护;
代码示例:
def func(): "显示问候语" return "hello"
print (func()) |
函数定义规则:
- 使用关键字def来定义,后跟函数名func(),最后,定义以冒号结尾;
- 后面的缩进构成了函数体(缩进四个空格);可以选择使用文档字符串的注释,描述函数具体是做什么的,使用func().__doc__可显示所有文档字符串
- return结束函数,函数的返回值;若函数无返回值,打印为None;
2.形参和实参
代码示例:
def add(a,b): return a+b print (add(2,3)) |
其中,变量a、b就是形参;2和3就是实参,即调用add()函数时传递的参数;
3.位置参数:需注意顺序
代码示例:
def user_info(user_name,user_age): return user_name+" is "+user_age+" years old!"
print (user_info("Peter",str(26))) print (user_info(str(26),"Peter")) 输出结果为: Peter is 26 years old! 26 is Peter years old! |
其中,第一次调用à实参”Peter”存储在形参user_name中,实参str(26)存储在形参user_age中,调用后的结果是正常的;第二次调用à实参str(26)存储在形参user_name中,实参”Peter”存储在形参user_age中,调用后的结果是不符合正常逻辑的;从中可以看出,位置参数的使用是需要注意顺序的。
4.关键字参数:由变量名和值组成,无需考虑顺序
代码示例:
def user_info(user_name,user_age): return user_name+" is "+user_age+" years old!"
print (user_info(user_name="Peter",user_age='26')) print (user_info(user_age='30',user_name="Long")) 输出结果为: Peter is 26 years old! Long is 30 years old! |
5.默认值参数:可传可不传,不传时使用默认值
代码示例:
def user_info(user_name,user_age,user_from="China"): return user_name+" is "+user_age+" years old"+" and from "+user_from+"."
print (user_info(user_name="Peter",user_age='26')) print (user_info(user_from="America",user_age='30',user_name="Long")) 输出结果为: Peter is 26 years old and from China. Long is 30 years old and from America. |
6.可变参数:*args,使用元组
def user_info(*args): return args,type(args)
print (user_info("Peter",26,"China")) print (user_info("Long",30,"America")) 输出结果为: (('Peter', 26, 'China'), <class 'tuple'>) (('Long', 30, 'America'), <class 'tuple'>) |
注意:return可以返回多个值;
7.可变参数:**kwargs,使用字典
def user_info(**kwargs): return kwargs,type(kwargs)
print (user_info(usr_name="Peter",user_age=26,user_from="China")) print (user_info(user_from="America",user_age='30',user_name="Long")) 输出结果为: ({'usr_name': 'Peter', 'user_age': 26, 'user_from': 'China'}, <class 'dict'>) ({'user_from': 'America', 'user_age': '30', 'user_name': 'Long'}, <class 'dict'>) |
8.结合使用以上参数
def user_info(user_name,user_from="China",*args,**kwargs): print (user_name,user_from) print (args) print (kwargs)
user_info("Peter",user_profession="teacher",user_salary=10000) user_info("Long","India",26,user_profession="'police'",user_salary=20000) 输出结果为: Peter China () {'user_profession': 'teacher', 'user_salary': 10000} Long India (26,) {'user_profession': 'police', 'user_salary': 20000} |