跳转至

Python函数定义与调用

1. 函数的基本概念

函数是一段可重复使用的代码块,它可以接收输入(参数),执行特定任务,并返回结果。

1.1 函数的作用

  • 代码复用
  • 提高可维护性
  • 模块化编程
  • 提高代码可读性

2. 函数定义

2.1 基本语法

def 函数名(参数1, 参数2, ...):
    函数体
    return 返回值

2.2 示例

def greet(name):
    """这是函数的文档字符串,用于说明函数功能"""
    return f"Hello, {name}!"

# 调用函数
print(greet("Alice"))  # 输出:Hello, Alice!

3. 参数类型

3.1 位置参数

def add(x, y):
    return x + y

result = add(2, 3)  # x=2, y=3

3.2 默认参数

def greet(name, message="Hello"):
    return f"{message}, {name}!"

print(greet("Bob"))          # Hello, Bob!
print(greet("Bob", "Hi"))    # Hi, Bob!

3.3 关键字参数

def student_info(name, age, city):
    return f"{name} is {age} years old from {city}"

# 使用关键字参数,顺序可以不同
print(student_info(age=20, city="Beijing", name="Tom"))

3.4 可变参数

# *args:接收任意数量的位置参数
def calculate_sum(*numbers):
    return sum(numbers)

print(calculate_sum(1, 2, 3, 4))  # 10

# **kwargs:接收任意数量的关键字参数
def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=20, city="Shanghai")

4. 返回值

4.1 单一返回值

def square(x):
    return x * x

result = square(5)  # 25

4.2 多个返回值

def get_coordinates():
    return 10, 20  # 返回元组

x, y = get_coordinates()  # 解包:x=10, y=20

5. 函数调用

5.1 基本调用

def multiply(a, b):
    return a * b

# 直接调用
result1 = multiply(4, 5)

# 保存返回值
result2 = multiply(b=3, a=6)  # 使用关键字参数

5.2 函数作为参数

def apply_operation(func, x):
    return func(x)

def double(n):
    return n * 2

result = apply_operation(double, 5)  # 10

6. 最佳实践

6.1 函数命名

  • 使用小写字母和下划线
  • 名称应该清晰表达功能
  • 动词开头(如 get_、calculate_、update_等)

6.2 文档字符串

def calculate_area(radius):
    """
    计算圆的面积

    参数:
        radius (float): 圆的半径

    返回:
        float: 圆的面积
    """
    return 3.14 * radius * radius

6.3 参数检查

def divide(a, b):
    if b == 0:
        raise ValueError("除数不能为零")
    return a / b

7. 小贴士

  • 函数应该只做一件事,并做好这件事
  • 保持函数简短,易于理解
  • 使用有意义的参数名
  • 适当添加注释和文档字符串
  • 注意参数的默认值设置
  • 考虑异常处理
def say_hello(name):
    print(f"你好,{name}!")

say_hello("小明")

进一步学习