1、定义函数
????????下面是一个打印问候语的简单函数,名为greet_user():
def greet_user():
"""显示简单的问候语"""
print("Hello!")
greet_user()
????????第二行处的文本称为文档字符串的注释,描述了函数是做什么的。
2、像函数传递信息
def greet_user(username):
"""显示简单的问候语"""
print(f"Hello,{username.title()}")
greet_user('jesse')
3、传递实参
位置实参:
调用函数是,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。因此,最简单的关联方式是基于实参的顺序。这种关联方式称为位置实参。
示例:
def describe_pet(animal_type,pet_name):
"""显示宠物信息"""
print(f"\nI have a {animal_type}.")
print(f"My {animal_type}'s name is {pet_name.title()}.")
describe_pet('hamster','harry')
关键字实参:
关键字实参是传递给函数的名称值对。关键字实参无需考虑函数调用中的实参顺序,还清楚的指出了函数调用中各个值的用途。
def describe_pet(animal_type,pet_name):
"""显示宠物信息"""
print(f"\nI have a {animal_type}.")
print(f"My {animal_type}'s name is {pet_name.title()}.")
describe_pet(animal_type = 'hamster',pet_name = 'harry')
describe_pet(pet_name = 'harry',animal_type = 'hamster')
两个函数的结果是等效的。
使用关键字实参时,务必准确的指定函数定义中的形参名。
4、默认值
编写函数时,可以给每一个形参指定默认值。再调用函数中给形参提供了实参时,python将使用指定的实参值;否则,将使用形参的默认值。
def describe_pet(pet_name,animal_type = 'dog'):
"""显示宠物信息"""
print(f"\nI have a {animal_type}.")
print(f"My {animal_type}'s name is {pet_name.title()}.")
describe_pet(pet_name = 'harry')
注意:使用默认参数时,必须先在形参列表中列出没有默认值的形参,在列出有默认值的实参。这让Python依然能够正确的解读位置实参。
5、等效的函数调用
? ? ? ? 鉴于可混合使用位置实参、关键字实参和默认值,通常有多种等效的函数调用方式。
示例:
def describe_pet(pet_name,animal_type = 'dog'):
"""显示宠物信息"""
print(f"\nI have a {animal_type}.")
print(f"My {animal_type}'s name is {pet_name.title()}.")
#一条名为Willie的小狗
describe_pet(pet_name = 'Willie')
describe_pet('Willie')
#一只名为Harry的仓鼠
describe_pet('harry','hamster')
describe_pet(pet_name = 'harry',animal_type = 'hamster')
describe_pet(animal_type = 'hamster',pet_name = 'Harry')
|