强制参数关键字参数默认参数不定长参数1必填参数:必填参数必须按正确顺序传递给函数,调用次数必须与声明时相同deff(name,age):print('Iam%s,Iam%d'%(name,age))f('alex',18)f('alvin',16) 2Keywordarguments:关键字参数与函数调用密切相关,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许参数的顺序在调用函数时与声明时不同,因为Python解释器能够将参数值与参数名称匹配。deff(name,age):print('Iam%s,Iam%d'%(name,age))#f(16,'alvin')#报错f(age=16,name='alvin') 3Defaultparameter(默认参数):调用函数时,如果没有传入默认参数的值,则认为是默认值。如果未传入年龄,以下示例将打印默认年龄:defprint_info(name,age,sex='male'):print('Name:%s'%name)print('age:%s'%age)print('Sex:%s'%sex)returnprint_info('alex',18)print_info('hammer',40,'female')4个变长参数你可能需要一个比原来能处理更多的函数声明参数。这些参数称为不定长参数。与上面两个参数不同的是,它们在声明时不会被命名。#defadd(x,y):#returnx+ydefadd(*tuples):sum=0forvintuples:sum+=vreturnsumprint(add(1,4,6,9))print(add(1,4,6,9,5))带有星号*的变量名将存储所有未命名的变量参数。而带(**)的变量名会存储命名变量参数defprint_info(**kwargs):print(kwargs)foriinkwargs:print('%s:%s'%(i,kwargs[i]))#可以根据参数打印任何相关信息returnprint_info(name='alex',age=18,sex='female',hobby='girl',nationality='Chinese',ability='Python')############################位置defprint_info(name,*args,**kwargs):#defprint_info(name,**kwargs,*args):errorprint('Name:%s'%name)print('args:',args)print('kwargs:',kwargs)returnprint_info('alex',18,hobby='girl',nationality='Chinese',ability='Python')#print_info(hobby='girl','alex',18,nationality='Chinese',ability='Python')#error#print_info('alex',hobby='girl',18,nationality='Chinese',ability='Python')#报错注意,也可以这样传参:'''学习中遇到问题没人回答?小编创建了一个Python学习交流QQ群:531509025,寻找志同道合的小伙伴,互相帮助。群里还有不错的视频学习教程和PDF电子书!'''deff(*args):print(args)f(*[1,2,5])deff(**kargs):print(kargs)f(**{'name':'alex'})5.高阶函数是至少满足以下条件之一的函数:接受一个或多个函数作为输入并输出一个函数defadd(x,y,f):returnf(x)+f(y)res=添加(3,-6,abs)print(res)###############deffoo():x=3defbar():returnxreturnbar
