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