函数示例
# 有参函数 def min(x,y): res=x if x < y else y return res # 无参函数 def interactive(): user=input('user>>: ').strip() passwd=input('password>>: ').strip() return (user,passwd)实例
def foo(): print('hello world!') bar() def bar(): print('fuck you!') foo() # 函数的调用函数的参数分为形参和实参:
形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。实参即在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合.3.1.位置参数
def register(name,age,sex): print('name:{} age:{} sex:{}'.format(name,age,sex)) # 三个参数都必须被传值3.2.关键词参数
# 调用函数用key=value形式传参 def register(name,age,sex): print('name:{} age:{} sex:{}'.format(name,age,sex)) register('weixu',24,'man') register(sex='man',name='xixi',age=18) register(18,sex='man',name='xiaowei') register('lili',18,sex='male') # 位置参数和关键词参数混合使用时,必须要按顺序使用,位置参数必须在关键词参数前面3.3.默认参数
# 设置sex默认值 def register(name,age,sex='male'): print('name:{} age:{} sex:{}'.format(name,age,sex)) register('weixu',18) register('chenxue',18,'female') # 默认参数必须放在位置参数后面3.4.可变长的参数
可变长的位置参数 def foo(x,y,z,*arg): print(x) print(y) print(z) print(arg) foo(1,2,3,4,5) # 溢出值保存为元组格式 list=[1,2,3,4] foo(1,2,3,*list) foo(1,2,3,list) foo(*[1,2,3,4]) # 求和 def add(*arg): res=0 for i in arg: res+=i print(res) add(1,2,5,323,23,23,23,23) 可变长关键词参数 def foo(x,**kwargs): print(x) print(kwargs) foo(x=1,y=2,z=5) dict={'a':22,'b':33} foo(x=1,y=2,**dict) # 溢出值保存为字典格式 def foo(x,y,z=3): print(x) print(y) print(z) foo(**{'x':1,'y':2})3.5.分隔符*使用
def register(name,age,*,sex,height): print('name:{} age:{} sex:{} height:{}'.format(name,age,sex,height)) register('weixu',18,sex='man',height=1.8) def register(name,age,*,sex='male',height): print('name:{} age:{} sex:{} height:{}'.format(name,age,sex,height)) register('weixu',24,height=1.8) def register(name,age,*arg,sex,height): print('name:{} age:{} arg:{} sex:{} height:{}'.format(name,age,arg,sex,height)) register('weixu',24,1,3,2,3,23,23,sex='male',height=1.8) # *前面是位置参数,后面用关键词参数key=value形式3.6.*args和**kwargs组合使用
def func(x, y, c): print(x, y, c) def xixi(*args, **kwargs): print(args,kwargs) func(*args, **kwargs) xixi(2,y=2,c=3) 因为func函数只能接收3个参数,所以xixi函数必须传3个参数