形式参数与实际参数

实际参数

1 实参根据***位置**与形参相对应
2序列实参使用
拆分序列中的位置在根据位置与形参对应
参数过多时可以通过容器传递信息
2实参根据***名称***与形参相对应
代码可读性高

形式参数

默认 :可以不穿惨
位置 :必须传参
关键字实参 默认参数 实参可以随意传递
位置形参 实参必须提供信息
*元组后面的参数 实参必须是关键字实参

1. 语法:

def 函数名(元组形参名):
函数体
2. 作用:
收集多余的位置传参。
3. 说明:
一般命名为
**'args’**
形参列表中最多只能有一个

**kwargs

  1. 语法:
    def 函数名(**字典形参名):
    函数体
    2. 作用:
    收集多余的关键字传参
    3. 说明:
    一般命名为’kwargs’
    形参列表中最多只能有一个

参数自左至右的顺序

位置形参 --> 星号元组形参 --> 命名关键字形参 --> 双星号字典形参

形参实参的区别

形参 出现在函数定义里面整个函数体都可以使用离开该函数体不能使用
实参 出现在主调函数中 进入被调函数后,实参变量也不能使用

实例

# 1. 默认参数:实参可以不传递
#  (必须从又向左依次存在)
def fun01(p1="", p2=0, p3=0.0):
    print(p1)
    print(p2)
    print(p3)


fun01()
fun01("悟空", 10, 5.6)
# 关键字实参 + 默认参数:实参可以随意传递
fun01(p2=100)


# 2. 位置形参:实参必须传递
def fun02(p1, p2, p3):
    print(p1)
    print(p2)
    print(p3)


# 3. 星号元组形参:使用星号将实参合并为一个元组
#   作用: 位置实参数量无限
#   备注:只能有一个
def fun03(*args):
    print(args)


fun03()
fun03(4, 54, 5, 65, 6)


# fun03(a=1, b=2, c=3) # 报错

# 4. 命名关键字形参:星号元组形参后面的参数
#   要求实参必须是关键字实参.
def fun04(*args, a, b=0):
    print(args)
    print(a)
    print(b)


fun04(34, 45, 54, 56, 67, 87, a=1, b=2)
fun04(34, 45, 54, 56, 67, 87, a=1)

# 4. 命名关键字形参:星号后面的参数
#   要求实参必须是关键字实参.
def fun05(a, *, b=0, c=""):
    print(a)
    print(b)

fun05(5,b = 6,c = 7)
fun05(5,c = 7)

# print(*args, sep=' ', end='\n', file=None)
print(3,4,54,5,56,end = " ")
print(3,4,54,5,56,sep = "-",end = " ")
# print(3,4,54,5,56,"-"," ")

# 5. 双星号字典形参:关键字实参数量无限
def fun05(**kwargs):
    print(kwargs)

fun05(a = 1,b = 2,c = 3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值