1 # 定义一个函数 2 def function(参数): 3 # 函数体 4
5 #定长函数参数 6 def print_info(name,age): 7 print('name:%s' %name) 8 print('age:%d' %age) 9 10 print_info('chris',24) 11 print_info(name='xxp',age=30) 12 13 14 # 不定长函数参数,形参前面加一个星号即可 15 def add(*arge): 16 print(arge) 17 add(1,2,3,4) 18 19 20 21 # 无命名参数,当需要传的参数没有命名,或则有的命名有的没有,需要用*arge和**kwarge来接受 22 # 一个*号的用于接受单个参数的,无命名的,两个*号的用于接受有命名的参数,然后被整理成字典的形式 23 #但是,他们有位置固定关系,无命名的一定放在左边,有命名的(有键值对)一定放在右边,不能颠倒 24 def print_info(*arge,**kwarge): 25 print(arge) 26 print(kwarge) 27 print_info('xxp',30,'mael',job='IT',age=30) 28 29 30 31 32 33 # 1、return可以同时返回多个值,如return 1,2 ,'abc',那么python会把多个值封装成一个元组返回 34 # 2、函数如果没有return,函数会默认返回none 35 def f(): 36 print('ok') 37 return 10 38 a=f() 39 print(a) 40 41 42 43 44 45 def f(*args): 46 print(args) 47 f(*[1,2,3],*[2,3,4]) #传递列表,这种会返回把两个列表封装成一个元组形式返回 48 f([1,2,3]) #返回一个列元组,里面的值是一个列表 49 50 51 def f2(**args): 52 print(args) 53 f2(name='chris') 54 f2(info={'name':'chris'}) 55 f2(**{'name':'chris'}) 56 #这种直接把字典当做参数传进去,以后处理数据是字典的形式时,就不用拆分成赋值形式,直接这样传,前面加两个*号 57 58 59 60 61 # 高阶函数 62 # 1 函数名可以作为参数输入 63 # 2 函数可以作为返回值返回 64 65 def f(n): 66 return n*n 67 68 def foo(a,b,f): 69 return f(a)+f(b) 70 x=foo(1,2,f) 71 print(x)