python基础:函数的参数类型介绍

在python中函数参数的定义方式有一下4中方式。
1)位置参数
2)关键字参数:
3)默认参数:
4)可变参数(*args,**kwargs):

1.位置参数
在我们在传参的时候,实参传递的顺序按照形参定义的顺序进行传递的传参方式。

def sum_num(num1,num2):
    print(num1+num2)
sum_num(1,2)  #num1=1,num2=2

在这里插入图片描述

2、关键字参数:
我们在传参的时候,以形参等于实参的形式,忽略形参定义的顺序进行传参的方式
注意事项:
1、关键字只能是形参中声明过的才能使用
2、位置参数和关键字参数混用,必须位置参数在前,关键字参数在后,才能正常使用
一、关键字参数:

def sum_num(num1,num2):
    print(num1)
    print(num2)
    print(num1+num2)

sum_num(num1=10,num2=20)
sum_num(num2=10,num1=20)   #num1=20.num2=20

二、关键字参数和位置参数混用

def sum_num(num1,num2):
    print(num1)
    print(num2)
    print(num1+num2)

sum_num(10,num2=20)   #num1=10,num2=20

位置参数在前,关键字参数在后,程序能正常运行,否则程序将报错。

在这里插入图片描述

三、默认参数:
默认参数
在定义函数的形参的时候,可以给形参一个初始值(默认值),
这种参数就叫做默认参数。当调用函数的时候,如果不给默认参数,
赋值,函数就会使用默认值。如果给默认函数参数赋值,函数就
使用重新赋的值
注意事项:
1、默认参数一定要写到形参的后面,否则将报错。

def save_userinfo(name, age, gender='男'):
    print('姓名:{},年龄:{},性别:{}'.format(name, age, gender))
save_userinfo('王兵',20)
# 调用函数的时候,没有给函数参数‘gender’传值,因此使用默认值
save_userinfo('花',20,gender='女')
# gender='女'覆盖掉了原有的gender='男'

运行结果:

姓名:王兵,年龄:20,性别:男
姓名:花,年龄:20,性别:女

在这里插入图片描述

在这里插入图片描述

四、可变参数:
可变参数:
如果函数中的参数过多,我们定义起来非常麻烦,
使用起来也非常麻烦,因此pyhon给我们提供了可变参数类型 ,
能处理比当初时更多的参数,会将传入的参数变成元组

可变参数格式:
*变量名
可接受多个位置参数,

注意事项:
1、 args位置参数会被组织成一个元组类型
2、一般情况下,还用的变量名称叫做args---->*args
3、*具有将序列打散的功能

*args----->接受多个位置参数
**kwargs---->接受多个关键字参数。变量名称可以随意写
,但是一般使用kwargs,
注意事项:
关键字参数将被组织成字典类型的数据

1、* args 类型参数
def func(*aa):
print(aa) #(1,2,3,4,5,6,7)
print(aa[0],aa[1])
func(1,2,3,4,5,6,7) #可以传递任意多个实参,以元组形式返回。

def func1(*args):
    print(args)    
    print(args[0],args[1])

func1(1,2,3,4)

运行结果:

(1, 2, 3, 4, 5, 6, 7)
1 2
(1, 2, 3, 4)
1 2

在这里插入图片描述

打散功能:

tup=(1,2,3,4)
print(tup)  # (1,2,3,4)
print(*tup)  #1,2,3,4
list=['a','b','c']
print(*list)   #a,b,c
str1='hello'
print(*str1)   # h e l l o

#将元组中的123分别给a,b,c赋值
def func(a,b,c):
    print(a,b,c)    #1 2 3
tup=(1,2,3)
func(*tup)   #打散后将元祖中每个值分别给a,b,c
#通过打散功能传递位置函数

2、**kwargs 类型参数:

def func(**kwargs):
    print(kwargs)   #返回字典类型的数据
    # {'name': 'zs', 'age': 10, 'gender': '男'}
    print(kwargs['name'],kwargs['age'],kwargs['gender'])
func(name='zs',age=10,gender='男')

** 可将字典打散(拆包)

def func(name,age):
    print(name,age)     # zs 10
dic={'name':'zs','age':10}
func(**dic)   # 等价于 name='zs',age=10

参数的顺序:
函数参数总结:
定义函数时参数的顺序: 位置参数,元组参数,默认参数,字典参数。
创建函数声明参数时的顺序:
位置参数>*args>默认参数>**kwargs

def func(a,*args,b=10,**kwargs):
    print(a)
    print(args)
    print(b)
    print(kwargs)

func('zs','ww',b='23',c=30,d=40)

运行结果:

zs
('ww',)
23
{'c': 30, 'd': 40}

def func(*arga,**kwargs):
    pass
   # 此种函数参数什么类型都能加收
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值