当前位置:首页 > Python > 正文

Python函数详解:内置函数与自定义函数教程 | Python编程指南

Python函数全面指南:从基础到高级应用

掌握Python函数编程的核心概念与实用技巧

什么是Python函数?

函数是Python编程中的基本构建块,它是一段可重复使用的代码,用于执行特定任务。使用函数可以:

  • 提高代码复用率
  • 使程序模块化
  • 增强代码可读性
  • 简化复杂任务的分解

Python内置函数

Python提供了丰富的内置函数,无需导入即可直接使用:

1. 基本输出与类型转换

# 输出函数
print("Hello, Python!")  # 输出: Hello, Python!

# 类型转换函数
num_str = "123"
num_int = int(num_str)   # 字符串转整数
num_float = float("3.14")  # 字符串转浮点数
str_val = str(100)       # 整数转字符串

print(f"类型转换结果: {num_int} (类型:{type(num_int)}), {num_float} (类型:{type(num_float)}), {str_val} (类型:{type(str_val)})")

2. 数学运算函数

# 数学函数示例
numbers = [4, 2, 9, 7, 5]
print(f"最大值: {max(numbers)}")  # 输出: 9
print(f"最小值: {min(numbers)}")  # 输出: 2
print(f"总和: {sum(numbers)}")    # 输出: 27
print(f"绝对值: {abs(-10.5)}")     # 输出: 10.5
print(f"四舍五入: {round(3.14159, 2)}")  # 输出: 3.14

3. 迭代与序列处理

# 序列处理函数
names = ["Alice", "Bob", "Charlie"]
name_lengths = list(map(len, names))  # 计算每个名字的长度
print(f"名字长度: {name_lengths}")  # 输出: [5, 3, 7]

filtered = list(filter(lambda x: len(x) > 4, names))  # 过滤长度大于4的名字
print(f"长名字: {filtered}")  # 输出: ['Alice', 'Charlie']

# 使用enumerate获取索引和值
for index, name in enumerate(names, start=1):
    print(f"{index}. {name}")

自定义函数

使用def关键字创建自定义函数,增强代码重用性:

1. 基本函数定义

# 定义简单的函数
def greet(name):
    """返回问候语 (这是文档字符串)"""
    return f"你好, {name}!"

# 调用函数
print(greet("张三"))  # 输出: 你好, 张三!
print(greet.__doc__)  # 输出函数文档字符串

2. 带默认参数的函数

# 带默认参数值的函数
def power(base, exponent=2):
    """计算base的exponent次幂,默认平方"""
    return base ** exponent

print(power(3))      # 输出: 9 (3的平方)
print(power(2, 4))   # 输出: 16 (2的4次方)

3. 可变参数函数

# 接受任意数量参数的函数
def calculate_average(*numbers):
    """计算任意数量数字的平均值"""
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

print(calculate_average(10, 20, 30))  # 输出: 20.0
print(calculate_average(5, 15, 25, 35, 45))  # 输出: 25.0

Lambda函数(匿名函数)

Lambda函数用于创建小型匿名函数,适用于简单操作:

# Lambda函数示例
square = lambda x: x ** 2
print(square(5))  # 输出: 25

# 在排序中使用lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 76},
    {"name": "Charlie", "grade": 92}
]

# 按成绩降序排序
students_sorted = sorted(students, key=lambda s: s["grade"], reverse=True)
print("按成绩排序:")
for student in students_sorted:
    print(f"{student['name']}: {student['grade']}")

高级函数特性

1. 递归函数

# 递归计算阶乘
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(f"5的阶乘: {factorial(5)}")  # 输出: 120

2. 闭包函数

# 闭包示例
def multiplier(factor):
    """创建一个乘数闭包"""
    def multiply(x):
        return x * factor
    return multiply

double = multiplier(2)
triple = multiplier(3)

print(double(5))  # 输出: 10
print(triple(5))  # 输出: 15

3. 装饰器函数

# 装饰器示例:计算函数执行时间
import time

def timer_decorator(func):
    """装饰器:测量函数执行时间"""
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"{func.__name__} 执行时间: {end_time - start_time:.4f}秒")
        return result
    return wrapper

@timer_decorator
def slow_function():
    """模拟耗时操作"""
    time.sleep(1.5)
    return "操作完成"

print(slow_function())

函数最佳实践

  • 使用有意义的函数名和参数名
  • 保持函数简洁(通常不超过20行)
  • 一个函数只做一件事
  • 使用文档字符串说明函数功能
  • 避免使用全局变量
  • 合理使用默认参数和类型提示

© 2023 Python编程教程 | 掌握Python函数,提升编程效率

发表评论