"""像函数传递参数"""
def greet_user(username):
print("hello,"+username.title()+"!")
greet_user('jeese')
注:
形参:函数完成工作时所需的一项信息 greet_user()中的username就是形参
实参:是调用函数时传递给函数的信息, greet_user(‘jeese’)中的jeese就是实参
调用函数时,将要让函数使用的信息放在括号中。再greet_user(‘jeese’)中,将实参‘jeese’传递给函数greet_user(),这个值被存储在形参username中
一、位置实参
位置实参:要求实参的顺序与形参相同
def describe_pet(animal_type,pet_name):
print("\n i have a"+animal_type+".")
print("my " + animal_type+"'s name is"+pet_name.title()+".")
describe_pet('hamster','harry')
describe_pet('dog','doudou')
运行结果:
i have ahamster.
my hamster’s name isHarry.
i have adog.
my dog’s name isDoudou.
二、关键字实参
关键字实参是传递给函数的名称-值对。直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个知道值得用途
def describe(animal_type,pet_name):
print("\n i have a "+animal_type)
print("my "+animal_type+"'s name is "+pet_name.title())
describe(animal_type='hamster',pet_name='harry')
describe(pet_name='harry',animal_type='hamster')
运行结果:
i have a hamster
my hamster’s name is Harry
i have a hamster
my hamster’s name is Harry
注:
使用关键字实参时,务必准确的指定函数定义中的形参名
三、默认值
调用函数中给形参提供了实参时,python将使用指定的实参值,否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参,使用默认值可简化函数调用,还可清楚的指出函数的典型用法。
def describe(pet_name,animal_type='dog'):
print("\n i have a "+animal_type)
print("my "+animal_type+"'s name is "+pet_name.title())
describe(pet_name='harry')
运行结果:
i have a dog
my dog’s name is Harry
注:
1.在这个函数定义中修改了形参的排列顺序。由于给animal-type指定了默认值,无需通过实参来指定动物类型,因此在函数调用时只包含一个实参—宠物名字。然而,python依然将这个实参是为位置实参,因此如果调用函数时,只包含宠物的名字,这个实参将关联到函数定义中的第一个形参,这就是将pet_name放在形参列表开头的原因所在。
2.使用默认值时,在形参列表中必须列出没有默认值得实参,在列出有默认值的实参