zoukankan      html  css  js  c++  java
  • 函数-->指定函数--->默认函数--->动态函数--> 动态参数实现字符串格式化-->lambda表达式,简单函数的表示

    #一个函数何以接受多个参数
    #无参数
    #show(): ---> 执行:show()

    #传入一个参数
    def show(arg):
        print(arg)
    #执行
    show(123)
    #传入两个参数
    def show(arg,aaa):
        print(arg,aaa)
    #执行
    show(123,'bbb')
    #函数的默认参数
    #设置一个默认参数为:999
    def show(a1,a2=999):
        print(a1,a2)
    #执行
    show(111,'2222')
    show(111)
    #说明:第二个参数a2 指定了默认参数999,在执行的时候 如果 第二个传入参数了 就会使用传入的参数,如果第二个没有传入参数,那函数就会使用默认参数 999
    #注意:默认参数必须要写在最后,比如: show(a2=999,a1): 这样就会报语法错误
    #指定参数
    def show(a1,a2):
        print(a1,a2)
    #执行
    show(111,'2222')
    #默认是把 第一个 111 传给 a1,第二个参数 222传给 a2
    show(a2=999,a1=123)
    #这样就会把第一个参数传给 a2,, 第二个参数传给 a1
    #动态参数
    def show(arg):
        print(arg)
    n = [11,22,33,44]
    #执行
    show(n)
    #参数 可以传入,字典,元素,列表,元祖
    #自动转化元组
    def show(*arg):
        print(arg,type(arg))
    show(1)
    #指定 show(*arg) 一个星号 把传入的所有参数自动转化为元组
    #自动转化字典
    def show(**arg):
        print(arg,type(arg))
    show(n1=78,uu=123)
    #指定 show(**arg) 二个星号 把传入的所有参数自动转化为字典
    #一个星号和两个星号的组合,会自动把对应传入值 封装到 对应的参数里
    #如果 一个星号的参数和两个星号的参数同时存在,必须把一个星号的参数放在第一个位置,
    def show(*args,**kwargs):
        print(args,type(args))
        print(kwargs,type(kwargs))
    show(11,22,33,44,n1=888,n2=999)
     #练习
    def show(*args,**kwargs):
        print(args,type(args))
        print(kwargs,type(kwargs))
    L = [11,22,33,44]
    d = {'n1':111,'n2':222,'n3':333}
    #注意: 如下传入参数的方法会将  L   d 两个变量当做参数传入 show 函数接受到这两个变量后 就会把 两个变量自动转换成 一个元组,这个元组 包含 列表 L,字典d,而 真正的**kwargs里是空的
    show(L,d)
    #输出:
    #([11, 22, 33, 44], {'n1': 111, 'n2': 222, 'n3': 333}) <class 'tuple'>
    #{} <class 'dict'>
    #正确的传入方式:
    show(*L,**d)
    #输出:
    #(11, 22, 33, 44) <class 'tuple'>
    #{'n1': 111, 'n2': 222, 'n3': 333} <class 'dict'>
    
    

     动态参数实现字符串格式化

     #使用一个 * 元组来实现字符串格式化

    #动态参数实现字符串格式化
    #字符串format 方法来格式化,可以传入 元组,字典
    #这里的 0  1 定义为占位符
    a = "{0} is {1}"
    w = ["asd",["mmmm"]]
    ret = a.format(['a1','a2'],{'w1':'eee4'})
    w1 = a.format(*w)
    print(ret)
    #输出:
    #['a1', 'a2'] is {'w1': 'eee4'}
    print(w1)
    #输出:
    #asd is ['mmmm']

    #使用两个 * 字典来实现字符串格式化

    #使用两个 * 字典来实现字符串格式化
    #如果是字典的形式来进行字符串的格式化,这里的 占位符 就不是0 1 来定义了,而是 keys value 的形式来定义了
    
    a = "{nameK} is {acterV}"
    result = a.format(nameK='K',acterV='V')
    print(result)
    #输出:
    #K is V
    
    a = "{nameK} is {acterV}"
    b = {"nameK":"KG","acterV":"VG"}
    result = a.format(**b)
    print(result)
    #输出:
    #KG is VG
    #lambda表达式,简单函数的表示
    #创建形式参数a
    #函数内容, a+1 并把结果 return回去
    func = lambda a: a+1
    #形式参数,可以是多个 一个a  一个 b,
    print(func(5))
     
    
    
    
    
    
  • 相关阅读:
    Android Listview 隐藏滚动条
    打开Activity时,不自动显示(弹出)虚拟键盘
    Spring Boot web API接口设计之token、timestamp、sign
    WPF ListView点击删除某一行并获取绑定数据
    WPF中控件的显示与隐藏
    WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示
    WPF之DataGrid应用 翻页
    WPF中修改DataGrid单元格值并保存
    DataGrid获取单元格的值
    WPF DataGrid 列宽填充表格方法
  • 原文地址:https://www.cnblogs.com/nb-blog/p/6400333.html
Copyright © 2011-2022 走看看