python 函数的参数

参数
1.基本参数知识

  • 任意个数
  • 任意类型
def func(a1,a2,a3):
    print(a1,a2,a3)
func(1,"asdf",True) #1 asdf True

2.位置传参数(调用函数并传入参数)

def user(name,age):
    print('用户姓名: %s'% name)
    print('用户年龄: %s '% age)

user('gebangfeng',16)
>用户姓名: gebangfeng
>用户年龄: 16 

位置实参的顺序很重要,使用位置实参来调用函数时,如果实参的顺序不正确,结果可能出乎意料

user(16,'gebangfeng')
>用户姓名: 16
>用户年龄: gebangfeng

3.关键字传参数

user(age=16,name='gebangfeng')
>用户姓名: gebangfeng
>用户年龄: 16

关键字实参让你无需考虑函 数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途.
使用关键字实参时,务必准确地指定函数定义中的形参名

4.默认值
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用 指定的实参值;否则,将使用形参的默认值.。因此,给形参指定默认值后,可在函数调用中省略 相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。

def user(name,age='16'):
    print('用户姓名: %s'% name)
    print('用户年龄: %s '% age)

user('gebangfeng')
>用户姓名: gebangfeng
>用户年龄: 16 

由于给age指定了默认值, 无需通过实参来指定动物类型,因此在函数调用中只包含一个实参——用户的名字

如果用户的年龄不是16,可以使用下面的函数调用

user(name='gebangfeng',age=22)
>用户姓名: gebangfeng
>用户年龄: 22

由于给age提供了实参,因此Python将忽略这个形参的默认值。
注意 使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。 这让Python依然能够正确地解读位置实参。

6.等效的函数调用
鉴于可混合使用位置实参、关键字实参和默认值,通常有多种等效的函数调用方式。请看下 面的函数describe_pets()的定义,其中给一个形参提供了默认值:

def user(name,age=16):

基于这种定义,在任何情况下都必须给pet_name提供实参;指定该实参时可以使用位置方式, 也可以使用关键字方式。如果要描述的动物不是小狗,还必须在函数调用中给animal_type提供 实参;同样,指定该实参时可以使用位置方式,也可以使用关键字方式.
下面对这个函数的所有调用都可行:

#16岁的葛邦风
user('葛邦风')
user(name='葛邦风')

#20岁的刘倩
user('刘倩',20)
user(name='刘倩',age=20)
user(age=20,name='刘倩')

注意 使用哪种调用方式无关紧要,只要函数调用能生成你希望的输出就行。使用对你来说最 容易理解的调用方式即可

7.避免实参错误
如果提供的参数多余或少于函数完成其工作所需的信息时,将会出现参数不匹配错误。例如,调用函数user时没有指定任何实参。

def user(name,age='16'):
    print('用户姓名: %s'% name)
    print('用户年龄: %s '% age)

user()

Python发现该函数调用缺少必要的信息,而traceback指出了这一点:

Traceback (most recent call last):
  File "E:/wordpython/python lianxi/lei.py", line 169, in <module>
    user()
TypeError: user() missing 1 required positional argument: 'name'

上面的意思是user()参数中缺少必须的位置参数name.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值