Python自定义函数是以def开头,空一格之后是这个自定义函数的名称,名称后面是一对括号,括号里放置形参列表,结束括号后面一定要有冒号“:”,函数的执行体程序代码也要有适当的缩排。Python自定义函数的通用语法是:
def function_name(parameters):
function_expression
return(result)
1、使用lambda匿名函数的自定义函数:
Python提供了一种非常有趣、精简好用的一行自定义函数的方法lambda,这是一种可以实现一行语句、用完即丢的自定义函数。语法形式是:
lambda 参数列表:执行语句
其实,它对应的标准自定义函数形式:
def 函数名称(参数列表):
return 语句内容
这种定义方式可以和map函数一起使用。
>>> x = range(1,9)
>>> x
range(1, 9)
>>> y = map(lambda i: i**3, x)
>>> for i, value in enumerate(y):
print("{}^3 = {}".format(i,value))
0^3 = 1
1^3 = 8
2^3 = 27
3^3 = 64
4^3 = 125
5^3 = 216
6^3 = 343
7^3 = 512
2、标准自定义函数:
形参列表是标准的tuple数据类型
def abvedu_add(x,y):
print( x + y)
abvedu_add(3,6)
>>>
9
3、没有形参的自定义函数:
该形式是标准自定义函数的特例。
def abvedu_print():
print("hello Python!")
abvedu_print()
>>>
hello Python!
4、使用默认值的自定义函数:
在定义函数指定参数时,有时候会有一些默认的值,可以利用“=”先指定在参数列表上,如果在调用的时候没有设置此参数,那么该参数就使用默认的值。
def abvedu_printSymbol(n,symbol = " %"):
for i in range(1,n+1):
print(symbol , end ="")
print()
abvedu_printSymbol(6)
abvedu_printSymbol(9,"@")
>>>
% % % % % %
@@@@@@@@@
5、参数个数不确定的自定义函数:
此函数可以接受没有预先设置的参数个数,定义方法是在参数的前面加上“*”。
def abvedu_main(*args):
print("参数分别是:")
for arg in args:
print(arg)
abvedu_main(1,2,3)
>>>
参数分别是:
1
2
3
abvedu_main(6,9)
>>>
参数分别是:
6
9
abvedu_main('a','b','v','e',"du")
>>>
参数分别是:
a
b
v
e
du
6、关键字参数
此函数可以接受没有预先设置的参数个数,又可以把多个实参数指定给各自的实参名。就得用关键字参数,定义方法是在参数的前面加上两个“*”,即 “ ** ”。
def info_collection(tel,birthday,**kwargs):
user_info = {}
user_info['tel'] = tel
user_info['birthday'] = birthday
user_info.update(kwargs)
print(kwargs)
print(user_info)
#用户信息返回
return(user_info)
#调用函数
info_collection(13612345678,'1990-01-01',nickname='月亮',gender = '女',edu = '硕士',income = 15000,add = '上海市浦东新区',interest = ['游戏','唱歌','看电影'])
>>>
{'nickname': '月亮', 'gender': '女', 'edu': '硕士', 'income': 15000, 'add': '上海市浦东新区', 'interest': ['游戏', '唱歌', '看电影']}
{'tel': 13612345678, 'birthday': '1990-01-01', 'nickname': '月亮', 'gender': '女', 'edu': '硕士', 'income': 15000, 'add': '上海市浦东新区', 'interest': ['游戏', '唱歌', '看电影']}