一、方法
1、实参传递方式argument(调用函数时使用)
A、位置实参,实参与形参根据位置依依对应。
B、关键字实参。实参与形参跟据名称进行对应
C、序列实参,以容器的形式传递实参。
d、列表list实参在上面函数中传递只认为是一个参数,用”*“拆分后与参数对应。
e、列表实能的作用:可以把列表赋空值然后动态传递。如list01=[]
f、字典实参,”**”把字典拆分后按名称与参数依依对应,输出的是字典的值
g、参数是a,b,c,d字典的键也必须是a,b,c,d,输出的是对应的值。
h、优点:如果参数较多可以存储在序列中(list,set等)便于变量的管理。
2、形参数传递方式parameter(定义函数时使用)
A、默认参数,如果不提供实参可以传递默认参数。也就是形参初始就赋一个值。
B、位置形参
C、*号元组形参:参数前面加“*”表示参数传递的是元组,可以传递任意个参数用“*“号 合并成元组
这里参数一般固定写成args如:def fun_sa(*args):
D、命名关键字形参:在*号以后的位置形参。如:def fun_gjz(a,*args,b):
传参时必须用关键字形式,b=值
主要是因为第一个参数后面跟的是元组,元组中间用”,“号,所以不给后面参数传 默认值就找不到最好的参数。
E、**号字典形参。可以传递无限的关键字实参.如:def set_fun(**a):
二、实例讲解
#例题:
#1、实参传递
def fun_sc(a,b,c,d):
print(a,end=” “)
print(b,end=” “)
print(c,end=” “)
print(d)
#A、位置实参,实参与形参根据位置依依对应。
fun_sc(1,2,3,4)
#B、关键字实参。实参与形参跟据名称进行对应
fun_sc(b=2,c=6,a=5,d=7)
#===============================
def fun_str(str):#str为python内部关键字。
#可以传入任何字符
print(str)
fun_str(“中国人”)#位置实参
fun_str(str=”好好学习”)#关键字实参
#C、序列实参
def fun_list(list):
for imt in list:
print(imt)
list01=[“a”,”b”,”c”,”d”]
print(fun_list(list01))
#1、列表实参在上面函数中传递只认为是一个参数,用”*“拆分后与参数对应。
list_m=[“aa”,”bb”,”cc”,”dd”]
fun_sc(*list_m)#”*”把序列拆分后按位置与形参对应
#2、字典实参,”**”把字典拆分后按名称与参数依依对应。
#参数是a,b,c,d字典的键也必须是a,b,c,d
dict01={“a”:1,”b”:2,”c”:3,”d”:4}
fun_sc(**dict01)
#3、优点:便于变量的管理。
#================================================
#2、形式参数
#A、默认参数,如果不提供实参可以传递默认参数。
def fun_01(a=0,b=1,c=2,d=3):#等号后面可以是任何值
print(a, end=” “)
print(b, end=” “)
print(c, end=” “)
print(d)
fun_01(b=5,d=28)#指定关键字传递
#输出:0 5 2 28
fun_01(5,6)#按位置传递
#输出:5 6 2 3
#练习:根据小时,分钟,秒计算总秒数
def yy_dd_mm(yy=0,dd=0,mm=0):
return yy*3600+dd*60+mm
#位置传递
mouse_dm=yy_dd_mm(2,3,20)
print(mouse_dm)
#关键字传递
mouse_dd=yy_dd_mm(dd=10,mm=40)
print(mouse_dd)
#列表传递
list02=[2,20,30]
mouse_mm=yy_dd_mm(*list02)
print(mouse_mm)
#字典传递
dict02={“yy”:2,”dd”:50,”mm”:40}
mouse_m=yy_dd_mm(**dict02)
print(mouse_m)
#B、位置形参
def fun_sa(a,b,c,d):
print(a,end=” “)
print(b,end=” “)
print(c,end=” “)
print(d)
#C、元组形参:参数前面加“*”表示参数传递的是元组
#这里参数一般固定写成args
def fun_sa(*args):
print(args,end=” “)
fun_sa(3)
fun_sa(1,2)
#练习:定义一个函数,任意传入几个数字并相加
def sum_fun_args(*args):
sum_a=0
for ime in args:
sum_a += ime
return sum_a
#return sum(args)
print(sum_fun_args(10,200,4))
#D、命名关键字形参:在*号以后的位置形参。传参时必须用关键字形式,b=值
# 主要是因为第一个参数后面跟的是元组,元组中间用”,“号,所以不给后面参数传默认值就找不到最好的参数。
def fun_lt(a,*args):
print(a)
print(args)
fun_lt(1)
fun_lt(1,2,3)
def fun_gjz(a,*args,b):
print(a,end=””)
print(args,end=””)
print(b)
#输出:1(4, 5)65
fun_gjz(1,4,5,b=65)
#E、**号字典形参。可以传递无限的关键字实参
def set_fun(**a):
print(a)
set_fun(5,a=5,b=6)
#输出:{‘a’: 5, ‘b’: 6}