函数的进阶

函数基础回顾

知识点

通用定义格式

        def 函数名(形式参数):

                函数体

                return 返回值

通用调用格式

        变量接受返回值=函数名(实际参数)

注意事项:

        1.函数必须先定义再调用

        2.每定义一次调就执行一次

        3.不调用不执行

        4.如果有形参,调用时必须传入实参

        5.如果有返回值,调用时建议用变量接受返回值

        6.没有返回值,默认返回的是None(空的,没有意义的)

函数的多个返回值

知识点

return 返回值:return结束并退出当前函数,顺带把后面的返回值给调用者

return 值1,值2...:return后跟多个返回值,默认是放到元组中返回此元组

示例

# 函数返回多个值,核心思想放到容器中返回,默认用的元组
# 先定义函数
def show():
    return 1, 2, 3


# 直接拆包接收
a, b, c = show()
print(a, b, c, )


# 先定义函数
def show():
    return 1, 2, 3, 5, 6, 7, 8, 9


# 调用函数
# 接收元组
result = show()
print(result, type(result))
# 遍历元组
for i in result:
    print(i)

函数参数分类

形参:定义函数的时候,括号中内容

        位置参数,缺省参数,可变参数

实参:调用函数的时候,括号中内容

        位置参数传参,关键字参数传参

特点:

        位置参数:顺序必须一致

        关键字参数:顺序可以不一致

        缺省参数:个数可以不一致

        可变参数:传入的实参个数可以不定长,*args以元组形式接受数据,**argskws以字典方式接受数据

位置参数示例

# 先定义函数
def show(name, age, height):
    print(f'姓名{name},年龄:{age},身高:{height}cm')  # 姓名张三,年龄:18,身高:178.8cm


# 再调用函数
# 演示位置传参,弊端:实参和形参的个数和顺序都必须一致
show('张三', 18, 178.8)

关键字参数示例

# 定义函数
def show(name, age, height):
    print(f'您的名字是:{name},您的年龄是:{age},您的身高是:{height}')


# 您的名字是:张三,您的年龄是:18,您的身高是:178.8
# 再调用函数
# 演示关键字传参    优点:实参和形参顺序可以不一致  弊端:实参和形参个数必须一致
show('张三', 18, 178.8)  # 位置传参
show(height=178.8, name='张三', age=18)  # 关键字传参
# 如果位置参数和关键字参数一起使用,关键字参数需要放到后面
show('张三', height=178.8, age=18)

缺省参数示例

# 先定义函数
# 注意位置参数和缺省参数一起配合使用,缺省参数需要放到后面
def show(name='张三', age=18, height=178.8):
    print(f'您的名字是:{name},您的年龄是:{age},您的身高是:{height}')


# 在调用函数,优点:实参和形参的个数可以不一致
# 如果设置了缺省参数,调用时可以都不传,使用默认值
show()
# 如果设置了缺省参数,调用时传入了值,以传入的为主
show('李四')
show('李四', 19)
show('李四', 19, 188.8)
# 注意:如果定义的时候都设置了缺省参数,调用的时候只想改变后面某个数据,需要用关键字参数
show(name='王五', height=188.8)
show('李四', height=188.8)
show(age=20, height=188.8)

不定长参数示例

"""
可变参数:不定长参数
位置传参:一个个数据,使用*args接收,默认把所有数据存储到了元组中,这个元组名叫args
关键字传参:一对对数据,使用**kwargs,默认把所有数据存储到了字典中,这个字典名叫kwargs
"""


# 定义函数
def show1(*args, **kwargs):
    print(args, type(args))  # (1, 2, 3, 4, 5) <class 'tuple'>
    print(kwargs, type(kwargs))  # {'a': 10, 'b': 20, '数学': 90} <class 'dict'>


# 再调用函数
show1(1, 2, 3, 4, 5, a=10, b=20, 数学=90)

综合案例

# 定义一个求和的函数
# 先定义函数
def get_sum(*args, **kwargs):
    sum = 0
    # 遍历元组
    for i in args:
        sum += i
    # 遍历字典所有值
    for i in kwargs.values():
        sum += i
    return sum


# 再调用函数
sum = get_sum(3, 10, 20, 30, a=1, b=10, c=30, )
print(sum)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值