函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。通过使用函数,我们可以避免代码的重复编写,提高程序的可读性和可维护性。
在 Python 中,函数使用 def
关键字来定义。基本格式如下:
def function_name(parameters): """docstring""" statement(s)
function_name
是函数的名字。parameters
是函数的参数,可以有零个或多个,用逗号分隔。docstring
是函数的文档字符串,用于描述函数的功能,它不是必须的。statement(s)
是函数体内的代码块,执行函数时会依次执行这些语句。
示例
定义一个简单的函数,该函数接收两个参数并返回它们的和:
def add_numbers(x, y): """ 返回两个数字的和 :param x: 第一个加数 :param y: 第二个加数 :return: 两数之和 """ return x + y
调用函数
定义完函数后,可以通过其名称来调用它,并传递相应的参数:
result = add_numbers(5, 7) print(result) # 输出:12
参数类型
Python 支持多种类型的参数,包括位置参数、关键字参数、默认值参数、变长参数等。
位置参数
位置参数是最常见的参数类型,在调用函数时,参数按照定义时的位置顺序传递给函数:
def describe_pet(animal_type, pet_name): print(f"I have a {animal_type}.") print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet('hamster', 'harry')
关键字参数
关键字参数允许你在调用函数时明确指定参数名和对应的值,这样就不必关心参数的顺序了:
describe_pet(animal_type='hamster', pet_name='harry')
默认值参数
默认值参数允许你在定义函数时为参数设置默认值。如果在调用函数时不提供该参数,则使用默认值:
def describe_pet(pet_name, animal_type='dog'): print(f"I have a {animal_type}.") print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet(pet_name='willie') # 使用默认的 animal_type
变长参数
有时你可能需要处理未知数量的参数,这时可以使用变长参数。变长参数有两种形式:*args 和 **kwargs。
*args
允许你传递任意数量的非关键字参数。在函数内部,这些参数将被当作元组处理。**kwargs
允许你传递任意数量的关键字参数。在函数内部,这些参数将被当作字典处理。
-- -------------------- ---- ------- --- ---------------------- --------------- - ----- ---- --- --------- ----------- --- ------- -- --------- --------- ----------- ----------------------- ----------------------- ------ --------- ------ -------- --- -------------------- ----- ------------- ------- - -- --------------------- - ----- -------------------- - ---- --- ---- ----- -- ------------------ ------------ - ----- ------ ------- ------------ - ----------------------- ----------- --------------------- ---------------- -------------------
返回值
函数可以通过 return
语句返回值。返回值可以是任何数据类型,包括数字、字符串、列表、字典等。
简单示例
def get_formatted_name(first_name, last_name): full_name = f"{first_name} {last_name}" return full_name.title() musician = get_formatted_name('jimi', 'hendrix') print(musician) # 输出:Jimi Hendrix
返回字典
函数也可以返回更复杂的数据结构,如字典:
def build_person(first_name, last_name, age=None): person = {'first': first_name, 'last': last_name} if age: person['age'] = age return person musician = build_person('jimi', 'hendrix', age=27) print(musician) # 输出:{'first': 'jimi', 'last': 'hendrix', 'age': 27}
结合使用 while 循环
你可以结合使用 while 循环和函数,使程序更加灵活:
-- -------------------- ---- ------- --- ------------------------------ ----------- --------- - -------------- ------------ ------ ----------------- ----- ----- --------------- ---- -- ---- ------- ------ - ------------ ----- -- ------ - ----------- ----- -- -------------- - -------------------------- ------- ---------------- ------------------- ------ - ------------ --- ---- -- --- ------- ------ -------- -------- -- -- ------ -- ------ -----
以上就是关于 Python3 函数的基本介绍,涵盖了函数的定义、调用、参数类型以及如何返回值等内容。希望对你理解和应用函数有所帮助。