python之基础知识--函数参数

函数参数

在python中,函数调用时传递的参数可以分为两种类型:位置参数和关键字参数;

  • 位置参数
  • 关键字参数

位置参数

位置参数是最基本的参数传递方式。在调用函数时,位置参数必须按照函数定义时的顺序传递。位置参数在函数定义时没有指定参数名,只通过位置来匹配。

def add(a, b):  
    return a + b  
  
result = add(3, 4)  # 这里3和4就是位置参数  
print(result)  # 输出7

在这个例子中,a和b是位置参数,调用add函数时必须按照a, b的顺序传递两个参数。

关键字参数

关键字参数在函数调用时通过参数名来指定要传递的参数。这种方式不依赖于参数的顺序,但需要在函数调用时明确指定参数名和对应的值。

def greet(name, age):  
    print(f"Hello, {name}! You are {age} years old.")  
  
greet(age=30, name="Alice")  # 这里使用了关键字参数

在这个例子中,name和age是关键字参数。调用greet函数时,通过name=Alice和age=30明确指定了参数名和对应的值。注意这里参数的顺序和函数定义时的顺序不一致,但因为使用了关键字参数,所以仍然可以正确调用。

同时,关键字参数也可以和位置参数混合使用,但需要注意位置参数必须在关键字参数之前

ef greet(name, age, greeting):  
    print(f"{greeting}, {name}! You are {age} years old.")  
  
greet("Alice", 30, greeting="Hello")  # 位置参数和关键字参数混合使用

特殊的位置参数

在Python中,args在函数定义中用于收集任意数量的位置参数为一个元组。这意味着你可以在调用函数时传递任意数量的位置参数,这些参数在函数内部将被收集为一个名为args的元组。
下面是一个使用
args的简单例子:

  • 例子1
def myfun2(*args):  
    for arg in args:  
        print(arg)  
  
# 调用函数,传递不同数量的位置参数  
myfun2(1, 2, 3)        # 输出 1 2 3  
myfun2(4, 5, 6, 7)     # 输出 4 5 6 7  
myfun2(8, 9)           # 输出 8 9

在这个例子中,myfun2函数定义中的*args允许你传递任意数量的位置参数给函数。函数内部通过遍历args元组来打印每个参数。

值得注意的是,args只是一个通常的命名约定。实际上,你可以使用任何名称,只要在它前面加上*。例如,*parameters

  • 例子2
def myfun2(*args):  

    print("有{}个参数".format(len(args)))
    print("参数是:{}".format(args))
    print("参数类型:{}".format(type(args)))
   
myfun2("333", 4, "56t5")
结果:
有3个参数
参数是:('333', 4, '56t5')
参数类型:<class 'tuple'>
  • 例子3
def myfun3(*args, x , y):  
    #在Python中,*args在函数定义中用于收集任意数量的位置参数为一个元组。
    # 这意味着你可以在调用函数时传递任意数量的位置参数,这些参数在函数内部将被收集为一个名为args的元组
    print("有{}个参数".format(len(args)))
    print("参数是:{}".format(args))
    print("参数类型:{}".format(type(args)))


myfun3(1, 4, 6, x = 3 , y = 5)
结果:
有3个参数
参数是:(1, 4, 6)
参数类型:<class 'tuple'>

从以上函数可以得到当函数的参数中有args,以及其他参数时,其他参数需要传递位置参数,否则会被分为args参数中;

  • *args返回参数是元组,如果想要返回字典需要用”**kwargs“;
def myfun4(**kwargs):  
    #在Python中,*args在函数定义中用于收集任意数量的位置参数为一个元组。
    # 这意味着你可以在调用函数时传递任意数量的位置参数,这些参数在函数内部将被收集为一个名为args的元组
    print("有{}个参数".format(len(kwargs)))
    print("参数是:{}".format(kwargs))
    print("参数类型:{}".format(type(kwargs)))

myfun4(a=1, b=4, c=6)

结果:
有3个参数
参数是:{'a': 1, 'b': 4, 'c': 6}
参数类型:<class 'dict'>

如有错误欢迎指正!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xp_fangfei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值