python之函数使用

tech2023-02-10  90

一.函数的定义

函数必须遵循先定义后调用的原则,在开发过程中,可以把一些功能代码定义成函数,可以重复使用 # 函数的语法 def 函数名(参数): '''函数功能描述''' 函数体(代码) return 值

函数示例

# 有参函数 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个参数
最新回复(0)