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
原文地址:https://www.cnblogs.com/repo/p/5426228.html