zoukankan      html  css  js  c++  java
  • python函数参数+lambda表达式

     1 #一个参数,
     2 def show(arg):
     3     print(arg)
     4 show("kkkkk")      #参数可以是列表,字典等,只要是一个元素就行
     5 
     6 #两个参数
     7 def show(agr,xxx):
     8     print(agr,xxx)
     9 show("hhhh",77777)     #如果只写一个参数会报错
    10 
    11 #默认参数,默认参数必须放在后面,即不能放在首位
    12 def show(a1,a2=999):
    13     print(a1,a2)
    14 show(111)       #默认参数,在执行函数时,参数可以不小写(执行结果会把默认的值输出)
    15 show(111,888)
    16 
    17 #指定参数
    18 def show(a3,a4):
    19     print(a3,a4)
    20 show(a4=123,a3=999)    #这样就会不按照顺序执行了
    21 
    22 #执行结果:
    23 kkkkk
    24 hhhh 77777
    25 111 999
    26 111 888
    27 999 123

    二、动态参数:

    1 #1.形参加一个星号,输出为元组
    2 def show(*arg):
    3     print(arg,type(arg))
    4 show(11,22,33,44,55,66)    #加一个星号的参数,输出结果把实际参数都放进了一个元组里了
    5 
    6 #执行结果:
    7 (11, 22, 33, 44, 55, 66) <class 'tuple'>
    1 2.形参加两个星号,输出为字典
    2 def show(**arg):
    3     print(arg,type(arg))   #加两个星号的参数,输出结果把实际参数都放进了一个字典里了
    4 show(n1=78,uu=123,bb=999)  #实际参数书写格式,按照字典写法
    5 
    6 #执行结果:
    7 {'n1': 78, 'uu': 123, 'bb': 999} <class 'dict'>
    1 #3.联合使用,必须先元组后字典
    2 def show(*args,**kwargs):    #联合使用,形参也必须先写一个星的,后面才写两个星的参数
    3     print(args,type(args))
    4     print(kwargs,type(kwargs))
    5 show(11,22,33,44,aa="sdf",bb="456")  #联合使用时,要求前面写一个星的,后面写两个星的,否则会报错
    6 
    7 #执行结果:
    8 (11, 22, 33, 44) <class 'tuple'>
    9 {'aa': 'sdf', 'bb': '456'} <class 'dict'>
     1 #4.如果实际参数用赋了值的变量,会把变量当成元素放到元组
     2 #想要原格式输出,则需在变量前相应加1个星号或者2个星号
     3 def show(*args,**kwargs):    #联合使用,形参也必须先写一个星的,后面才写两个星的参数
     4     print(args,type(args))
     5     print(kwargs,type(kwargs))
     6 # show(11,22,33,44,aa="sdf",bb="456")  #联合使用时,要求前面写一个星的,后面写两个星的,否则会报错
     7 li = [11,22,33,44,55]
     8 dic = {"n1":44,"n2":"dsf"}
     9 show(li,dic)   #把li和dic当做2个元素放到元组了,字典为空
    10 show(*li,**dic)   #如果想把值按原格式输出,则相对应的加一个星或者加2个星
    11 
    12 #执行结果:
    13 ([11, 22, 33, 44, 55], {'n1': 44, 'n2': 'dsf'}) <class 'tuple'>
    14 {} <class 'dict'>
    15 (11, 22, 33, 44, 55) <class 'tuple'>
    16 {'n1': 44, 'n2': 'dsf'} <class 'dict'>

    应用:

     1 #
     2 s1 = "{0} is {1}"
     3 result = s1.format("yaom","345")   #正常的字符串格式化赋值
     4 print(result)
     5 
     6 s1 = "{0} is {1}"
     7 li = ["yao","345"]
     8 result = s1.format(*li)     #利用列表转换输出
     9 print(result)
    10 
    11 s1 = "{name} is {acter}"
    12 result = s1.format(name="liug",acter="sbt")    #正常的字符串格式赋值
    13 print(result)
    14 
    15 s1 = "{name} is {acter}"
    16 dic = {"name":"liu","acter":"sbt"}   #
    17 result = s1.format(**dic)              #利用字典转换输出
    18 print(result)
    19 
    20 #执行结果:
    21 yaom is 345
    22 yao is 345
    23 liug is sbt
    24 liu is sbt

    lambda表达式:

     1 #lambda表达式,简单函数表达式
     2 def func(a):
     3     b = a+1
     4     return b
     5 result = func(4)
     6 print(result)
     7 #lambda表达式,简单函数的简单表示(和li = []与li = list()表达一样)
     8 func = lambda a:a+1   #只用一行就表示出来了,不用跳行
     9 #创建形式参数a
    10 #函数内容,a+1 并把结果return
    11 ret = func(99)
    12 print(ret)
    13 
    14 #执行结果:
    15 5
    16 100
  • 相关阅读:
    centos查看apache用的是哪个httpd.conf
    window下安装composer and yii2
    安装xampp后,出现“Apache 2 Test Page powered by CentOS“
    PHP高效率写法
    银联接口(注意项&备忘)
    多行文本溢出
    javascript数据基本定义以及对象{}和数组[]的含义和使用
    用CSS3的animation轻松实现背景动画:漂浮的云
    巧妙使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的好方法
    NBA篮球足球在线直播插件下载
  • 原文地址:https://www.cnblogs.com/repo/p/5426228.html
Copyright © 2011-2022 走看看