zoukankan      html  css  js  c++  java
  • Python基础之函数参数

    一、实参

      1、实参分类:

       

      2、实参基础代码:

      

    def fun01(a, b, c):
        print(a)
        print(b)
        print(c)
    
    # 位置传参:实参与形参的位置依次对应
    fun01(1, 2, 3)
    
    # 序列传参:用*将序列拆分后与形参的位置依次对应
    fun01(*[4, 5, 6])
    
    # 关键字传参:实参根据形参的名称进行对应
    fun01(b=2, a=1, c=3)
    
    # 字典传参:用**将字典拆分后与形参的名字进行对应.
    fun01(**{"b":20,"c":"cc","a":1.5})
    
    # 默认参数
    def fun02(a = 0, b = 0, c = 0):
        print(a)
        print(b)
        print(c)
    
    # 不写参数,使用默认值.
    fun02()
    fun02(1)
    fun02(*[2,3])
    # 关键字传参 与 默认传参相结合,可以让调用者只传递自己需要的信息.
    fun02(b = 20)
    fun02(**{"c":"cc"})

      3、示例练习:定义函数,根据天/小时/分钟,计算总秒数

      

    def get_total_second(day=0, hour=0, minute=0):
        return day * 24 * 60 * 60 + hour * 60 * 60 + minute * 60
    
    
    s01 = get_total_second(1, 1, 1)
    s02 = get_total_second(1, 1)
    s02 = get_total_second(hour=2)

    二、形参:

      1、形参分类:

      

      2、形参基础代码:

      

    # 默认参数
    def fun02(a = 0, b = 0, c = 0):
        print(a)
        print(b)
        print(c)
    
    # 不写参数,使用默认值.
    fun02()
    fun02(1)
    fun02(*[2,3])
    # 关键字传参 与 默认传参相结合,可以让调用者只传递自己需要的信息.
    fun02(b = 20)
    fun02(**{"c":"cc"})
    
    
    # 位置形参
    def fun01(a, b, c):
        pass
    
    
    # 星号元组形参
    def fun02(*args):
        # 对于方法内部而言,就是元组
        # 对于调用者而言,可以传递数量无限的位置实参.
        print(args)
    
    
    # fun02()
    # fun02(1)
    # fun02(1,2,3,4)
    
    # 命名关键字形参:强制实参使用关键字传递.
    # a,b 是命名关键字形参
    def fun03(*, a, b):
        print(a)
        print(b)
    
    
    # b 是命名关键字形参
    def fun04(*args, b):
        print(args)
        print(b)
    
    
    # fun03(a = 1,b = 2)
    fun04(3, 44, 3, b =22)
    
    
    # 双星号字典形参
    def fun05(**kwargs):
        # 对于方法内部而言,就是字典,
        # 对于调用者而言,可以传递数量无限的关键字实参.
        print(kwargs)
    
    
    fun05(a=1, b=2)
    
    
    # 调用
    def fun06(*args, **kwargs):
        print(args)
        print(kwargs)
    
    
    # 数量无限的位置实参,数量无限的关键字实参
    fun06(1, 2, 3, 4, 5, a="a", b=1.5)
    
    
    def fun07(a, b, *args, c, d, **kwargs):
        print(a)
        print(b)
        print(args)
        print(c)
        print(d)
        print(kwargs)
    
    
    fun07(1, 2, 3, 4, 5, d="d", c="c")
    fun07(1, 2, 3, 4, 5, d="d", c="c", e="ee")
    fun07(1, 2, d="d", c="c")
    
    print(1,2,3,4,5) # 1 2 3 4 5
    print(1,2,3,4,5,"#") #   1#2#3#4#5

      3、示例练习:定义函数,整数相加的函数。

      

    def add(*args):
        sum = 0
        for item in args:
            sum += item
        return sum
    
    re = add(1,2,3,4,45,43)
    print(re)

       4、自定义列表的排序函数

      

    def sort(list_target):
        # 传入的是可变类型
        # 修改的是传入的对象
        for r in range(len(list_target) - 1):
            for c in range(r+1,len(list_target)):
                if list_target[r] < list_target[c]:
                    list_target[r],list_target[c] = list_target[c], list_target[r]
    
    
    list01 = [2,4,4,5,6,7]
    sort(list01)
    print(list01)

      5、英文单词反转,如:   how are you -->you are how

      

    def get_words_inversion(words):
        list_words = words.split(' ')
        list_words.reverse()
        str_result = ' '.join(list_words)
        return str_result
    
    words = 'how are you'
    words = get_words_inversion(words)
    print(words)

      

  • 相关阅读:
    App界面设计利器Sketch 精选案例合集
    破解有道词典在线翻译接口--python
    欧几里得算法/欧几里得扩展算法-python
    深浅拷贝--python(预习中随手写的。因为当时很无聊。。。)
    为tomcat动态添加jndi数据源信息
    四个年头
    使用Node.JS访问Hyperledger Fabric的gRPC服务
    Hyperledger fabric Client Node.js Hello World示例程序
    在IBM Bluemix上部署Hyperledger应用
    Hyperledger区块数据的访问
  • 原文地址:https://www.cnblogs.com/yuxiangyang/p/10685301.html
Copyright © 2011-2022 走看看