• [教程]Python函数的参数


    Python函数的参数

    位置参数、默认值参数、可变参数、关键字参数和命名关键字参数

    1 函数结构

    def 函数名(参数):
        函数体
        返回值 
    

    2 位置参数

    3 默认值参数

    4 可变参数

    # 可变长度参数函数
    # 可变参数允许你传入0个或任意个参数,这些参数在调用时自动组装成元祖(tuple)
    
    # 1 定义求和函数
    def calc1(numbers):
        sum = 0
        # for循环遍历传递的列表或者元祖
        for num in numbers:
            sum = sum+num
        #返回求和结果
        return sum
    # 调用calc1函数传递列表作为参数
    print(calc1([1,2,3,4]))
    # 调用calc1函数元祖作为参数
    print(calc1((1,2,3,4,5)))
    # 调用calc1函数集合作为参数
    print(calc1({1,2,3,4,5,6}))
    
    #2 定义求和函数
    def calc2(*numbers):
        sum = 0
        # 接受到的参数全部自动组装成元祖
        print(type(numbers))
        # for循环遍历传递的列表或者元祖
        for num in numbers:
            sum = sum+num
        #返回求和结果
        return sum
    # 调用calc2函数传递多个参数
    print(calc2(1,1,1,1))
    # 调用calc2函数传递列表作为参数,参数前加*
    print(calc2(*[2,2,2,2]))
    # 调用calc2函数元祖作为参数,参数前加*
    print(calc2(*(1,2,3,4,5)))
    # 调用calc2函数集合作为参数,参数前加*
    print(calc2(*{1,2,3,4,5,6}))
    

    5 关键字参数

    # 关键词参数函数
    # 更多信息必须以参数名=值得形式传递进去
    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    person("jack", 20)
    person(name = "jack", age = 20)#效果同上
    person("jason", 19, city="beijing")
    # person("kiki",18,"上海") #报错 关键词参数函数必须要以 参数名=值 的形式传递参数
    

    6 命名关键字

    def person(name, age, *, city, job):
        print(name, age, city, job)
    person("li", 22, city = "beijing",job="teacher")
    # person("li", 22, city = "beijing") #参数少写报错
    

    7 参数组合

    # a b   位置参数
    # c     默认值参数
    # *args 可变参数
    # **kw  关键字参数
    def f1(a, b, c=0, *args, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
    
    # a b   位置参数
    # c     默认值参数
    # d     命名关键字参数
    # **kw  关键字参数
    def f2(a, b, c=0, *, d, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
    

    8 总结

    可变参数

    • 定义 def 函数名(*arg)
    • 使用 函数名(值1,值2,值3)
    • 场景 需要传递参数,但是参数个数不确定
    • 其他 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。

    关键词参数

    • 定义 def 函数名(**kw)
    • 使用 函数名(参数名1=值1, 参数名2=值2, 参数名3=值3)
    • 场景 可以扩展函数的功能,用户注册时,除了name和age用户还希望提交的其他信息都可以通过关键词参数提交
    • 其他 关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
    • 注意
      • 1 不写参数名报错
      • 2 参数传递必须以参数名=值得形式传递

    命名关键词参数

    • 定义 def 函数名(*, 参数名1, 参数名2)
    • 使用 函数名(参数名1=值1, 参数名2=值2)
    • 场景 用户传递的其他信息受关键词约束
    • 注意
      • 1 不写参数名报错
      • 2 少写算错
      • 3 参数传递必须以参数名=值得形式传递
  • 相关阅读:
    会员管理软件
    正则表达式查找未记录的异常
    网络通信 数据压缩后发送
    SQL 工具系列一
    P5443 [APIO2019]桥梁 [分块+并查集]
    #6499. 「雅礼集训 2018 Day2」颜色 [分块,倍增,bitset]
    CF594D REQ [离线+树状数组,欧拉函数]
    雅礼集训板刷合集
    [HNOI2016]网络 [树链剖分,可删除堆]
    「BZOJ3065」带插入区间K小值 [分块]
  • 原文地址:https://www.cnblogs.com/viviwong345/p/7084142.html
Copyright © 2020-2023  润新知