第5节 函数

在这一节中,我们将详细介绍 Python 中的函数。函数是组织和重用代码的重要方式,可以帮助我们编写更模块化、更易维护的程序。我们将学习如何定义函数、传递参数、返回值以及使用匿名函数(lambda 表达式)。

5.1 定义函数

在 Python 中,使用 def 关键字来定义函数。函数可以接受参数并返回值。

基本语法:

def function_name(parameters):
    # 函数体
    return value  # 可选

示例:

def greet(name):
    """打印问候语"""
    print(f"Hello, {name}!")

greet("Alice")  # 输出 "Hello, Alice!"

5.2 函数参数

函数可以接受不同类型的参数,包括必需参数、关键字参数、默认参数和不定长参数。

5.2.1 必需参数

必需参数是指调用函数时必须传递的参数,且参数的顺序必须与定义时一致。

示例:

def add(a, b):
    """返回两个数的和"""
    return a + b

result = add(3, 5)
print(result)  # 输出 8
5.2.2 关键字参数

关键字参数允许我们在调用函数时使用参数名来传递参数,这样可以不按顺序传递参数。

示例:

def describe_pet(animal_type, pet_name):
    """显示宠物的信息"""
    print(f"I have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name}.")

describe_pet(animal_type="hamster", pet_name="Harry")
describe_pet(pet_name="Harry", animal_type="hamster")
5.2.3 默认参数

默认参数是指在定义函数时为参数提供一个默认值,如果调用函数时没有传递该参数,则使用默认值。

示例:

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}.")

describe_pet(pet_name="Willie")  # 输出 "I have a dog." 和 "My dog's name is Willie."
describe_pet(pet_name="Harry", animal_type="hamster")  # 输出 "I have a hamster." 和 "My hamster's name is Harry."
5.2.4 不定长参数

不定长参数允许我们在调用函数时传递任意数量的参数。

  • args :用于传递任意数量的位置参数,参数会被收集到一个元组中。
  • kwargs :用于传递任意数量的关键字参数,参数会被收集到一个字典中。

示例:

def make_pizza(size, *toppings):
    """概述要制作的比萨"""
    print(f"\nMaking a {size}-inch pizza with the following toppings:")
    for topping in toppings:
        print(f"- {topping}")

make_pizza(16, "pepperoni")
make_pizza(12, "mushrooms", "green peppers", "extra cheese")

def build_profile(first, last, **user_info):
    """创建一个字典,其中包含我们知道的有关用户的一切"""
    profile = {"first_name": first, "last_name": last}
    for key, value in user_info.items():
        profile[key] = value
    return profile

user_profile = build_profile("albert", "einstein", location="princeton", field="physics")
print(user_profile)

5.3 返回值

函数可以使用 return 语句返回一个值。如果函数没有 return 语句,或者 return 语句后面没有值,函数将返回 None

示例:

def add(a, b):
    """返回两个数的和"""
    return a + b

result = add(3, 5)
print(result)  # 输出 8

def greet(name):
    """返回问候语"""
    return f"Hello, {name}!"

message = greet("Alice")
print(message)  # 输出 "Hello, Alice!"

5.4 匿名函数(lambda 表达式)

lambda 表达式是一种创建匿名函数的方式,通常用于需要简单函数的地方,如排序或过滤。

基本语法:

lambda arguments: expression

示例:

# 定义一个 lambda 表达式
square = lambda x: x ** 2
print(square(4))  # 输出 16

# 使用 lambda 表达式排序
numbers = [1, 3, 2, 5, 4]
sorted_numbers = sorted(numbers, key=lambda x: x)
print(sorted_numbers)  # 输出 [1, 2, 3, 4, 5]

# 使用 lambda 表达式过滤
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 输出 [2, 4]

小结

通过本节的学习,你应该已经掌握了 Python 中函数的基本概念和用法,包括如何定义函数、传递参数、返回值以及使用匿名函数(lambda 表达式)。函数是编写模块化和可重用代码的重要工具,能够帮助你更好地组织和管理代码。下一节我们将继续学习 Python 中的文件操作。

本文由mdnice多平台发布


星火技术
1 声望0 粉丝

« 上一篇
03-控制结构
下一篇 »
07-异常处理