python函数的参数


1.单个参数

    场景:需要动态的调整函数中某一个处理信息。则可以,以参数的形式接收到相关数据。

    定义:def 函数名(参数名称):

                    函数体->函数体中,可以直接以变量的形式使用该参数。

    函数的调用:函数名(参数值)

    形参和实参的概念:上述定义中,“参数名称”即为形参。在调用函数的时候,传递真实数据,即为实参。

案例代码:

def test(num):
    print(num * 1)
    print(num * 2)
    print(num * 3)

test(3)

2.多个参数

    场景:需要动态调整函数体中多个处理信息时,则可以使用“逗号”做分割。接收多个参数。

    定义:def 函数名(参数名称1, 参数名称2)

                    函数体->函数体中,可以直接以变量的方式使用所有参数。

    调用:方式1->函数名(参数1, 参数2, 参数3,......)->形参和实参一一对应。

def mySum(x, y):
    print(x + y)

mySum(1, 2)

             方式2->函数名(参数名称1=参数1, 参数名称2=参数2, 参数名称n=参数n,......)->可以指明形参名称->称为“关键字参数”

                                                                                                                                不需要严格按照顺序

mySum(x=2, y=10)


3.不定长参数

    场景:如果函数体中,需要处理的数据,不确定长度,则可以以不定长参数的方式接收数据。

    方式1:def 函数名(*args):->形参前面加上*号,形参默认为是元组,使用的时候只加一层括号就好

                    函数体->函数体中,可以直接以元组变量的方式使用该参数。

    使用:函数名(参数1, 参数2, 参数3, ......)

def mySum(*t):
    print(t, type(t))
    sumi = 0
    for v in t:
        sumi += v
    print(sumi)
mySum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    方式2:def 函数名(**dic): ->字典

                      函数体->函数体重中,可以直接以字典变量的方式使用该参数。

    使用:函数名称(参数名称1=参数1, 参数名称2=参数2, ......)

def mySum(**kwargs):
    print(kwargs, type(kwargs))

mySum(name=18, age=2)

**参数的拆包:

    装包->把传递的参数,包装成一个集合,称之为“装包”

def test(*args):
    print(args)
test(1, 2, 3, 4, 6)

    拆包->把集合参数,再次分解成单独的个体,称之为“拆包”

def test(*args):
    print(*args)

test(1, 2, 3, 4, 6)

应用案例:

def mySum(a, b, c, d, e):
    print(a + b + c + d + e)

def test(*args):
    print(args)
    print(*args)
    mySum(args[0], args[1], args[2], args[3], args[4])
    mySum(*args)
test(1, 2, 3, 4, 6)

应用案例2:

def mySum(a, b):
    print(a)
    print(b)

def test(**kwargs):
    print(kwargs)
    # 使用两个星星进行拆包操作
    # print(**kwargs)
    mySum(**kwargs)
test(a=1, b=2)


4.缺省参数:

    场景:当我们使用一个函数的时候,如果大多情况下,使用的某个数据是一个固定值,或属于主功能之外的小功能实现。则可以使用默认值->这种参数,成为“缺省参数”。

    定义:def 函数名(变量名1=默认值1, 变量名2=默认值2)

                    函数体->函数体中,即使外界没有传递指定变量,也可以使用,只不过值给定的是默认值。

    使用:函数名(变量1, 变量2)->此处如果是缺省参数,则可以不填写。

def hit(somebody="豆豆"):
    print("我想打", somebody)

hit("阳光")
hit()

5.参数注意:

    值传递和引用传递:

        值传递->是指传递过来的,是一个数据的副本,修改副本对原件没有任何影响。

        引用传递->是指传递过来的,是一个变量的地址,通过地址可以操作同一份原件。

    但是注意:

        在python中,你没得选择,只有引用传递(地址传递)

        但是,如果数据类型是可变类型,则可以改变原件。如果数据类型是不可变类型,则不可以改变原件。

def change(num):
    print(id(num))
    print(num)

b = 10
print(id(b))
change(b)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值