day10_函数基础

函数定义

def 函数名():
    code

空函数

def func():
    pass

有参函数

def func(name):
    print(name)

无参函数

def func():
    print('you win')

函数调用

def func():
    print('from func')

func()  # 调用函数,先定义,再调用

返回值

return 的作用

# 停止函数
# 指定返回值,未指定,则默认返回None
# 若是返回多个值,用逗号隔开,以元组形式返回
def func():
    name = input('name:')
    age = input('age:')
    return name,age
res = func()
print(res)
'''
name:xdd
age:60
('xdd', '60')
'''

参数

形参

没有实际意义,具有描述意义,用来接收实参值,

位置形参

定义函数时,在括号内,从左到右一个一个定义

接收实参时,按照位置,一一对应接收

def func(name,age,hobbly):
    pass

默认形参

给位置形参设置默认值

1、若接收到实参值,则使用接收到的实参值,若没接收到实参值,则使用在定义阶段赋予的默认值

2、定义时,默认形参位于位置形参的右边,默认形参之间可以无序

def func(name,age=17,hobby='misic'):
    pass

实参

调用函数时,按照函数要求的形参传入参数值

位置实参

调用函数时,按照函数形参数量和位置,一一对应传入参数值

def func(name,age,height):
    print(name,age,height)

func('alex',17,190)
'''
alex 17 190
'''
    

关键字实参

调用函数时,按照函数给出的形参名,赋值的方式传入参数

关键字实参位于位置实参右边

关键字实参之间可以无序

def func(name,age=15,height=198):
    print(height)

func(age=19,name='lala',height=180)
'''
180'''

可变长参数

形参

*args

接收多余的位置实参值,以元组的方式存储(args是约定俗成的用法)

def func(a,b,*args):
    print(a,b,args)
func(12,15,1,2,4,5,5)
'''
12 15 (1, 2, 4, 5, 5)
'''

**kwargs

接收多余额关键字实参值,以字典的方式存储

def func(a,b,c=2,**kwargs):
    print(a,b,c,kwargs)
func(12,13,c=6,d=14,e=16)  
'''
12 13 6 {'d': 14, 'e': 16}
'''

接收所有参数

def func(*args,**kwargs):
    print(args,kwargs)
func(12,13,c=6,d=14,e=16)
'''
(12, 13) {'c': 6, 'd': 14, 'e': 16}
'''

实参

*实参名

传入一个元组:将元组打散成位置实参,传入形参

注意点:元组元素个数与形参个数相等,或者形参能接收多余的位置实参

**实参名

传入一个字典:将字典打散成关键字实参,传入形参

注意点:字典元素个数与形参个数相等,或者形参能接收多余的关键字实参

def func(*args,**kwargs):
    print(args,kwargs)
func(*(1,2,3,4,5),**{'a':44,'b':55})
'''
(1, 2, 3, 4, 5) {'a': 44, 'b': 55}
'''
def func(*args,**kwargs):
    print(args,kwargs)
func(10,12,14,*(1,2,3,4,5),16,k=19,**{'a':44,'b':55},m=90)
'''
(10, 12, 14, 1, 2, 3, 4, 5, 16) {'k': 19, 'a': 44, 'b': 55, 'm': 90}
'''
posted @ 2019-09-19 13:49  W文敏W  阅读(144)  评论(0)    收藏  举报