跳转至

09 - 代码示例

经典案例、实用代码、最佳实践

📖 章节概述

本章将提供丰富的Python代码示例。

🎯 学习目标

完成本章后,你将能够:

  • 学习经典编程案例
  • 掌握实用代码片段
  • 了解最佳实践
  • 能够应用到实际项目

Python代码示例知识地图

1. 经典案例

1.1 斐波那契数列

Python
def fibonacci(n):
    """计算斐波那契数列的第n项"""
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# 测试
for i in range(10):
    print(f"F({i}) = {fibonacci(i)}")

1.2 阶乘计算

Python
def factorial(n):
    """计算n的阶乘"""
    if n == 0:
        return 1
    return n * factorial(n-1)

# 测试
for i in range(6):
    print(f"{i}! = {factorial(i)}")

2. 实用代码

2.1 文件操作

Python
import os
import json

def read_json_file(filename):
    """读取JSON文件"""
    with open(filename, 'r', encoding='utf-8') as f:
        return json.load(f)  # json.load()从文件读取JSON并转为Python对象

def write_json_file(filename, data):
    """写入JSON文件"""
    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2)  # json.dump()将Python对象序列化为JSON写入文件

# 测试
data = {"name": "张三", "age": 25}
write_json_file("person.json", data)
loaded_data = read_json_file("person.json")
print(loaded_data)

2.2 数据处理

Python
def process_data(data):
    """处理数据"""
    # 过滤数据
    filtered = [item for item in data if item > 0]  # 列表推导式,简洁地从可迭代对象创建新列表

    # 转换数据
    squared = [x**2 for x in filtered]

    # 统计数据
    total = sum(filtered)
    average = total / len(filtered) if filtered else 0

    return {
        "filtered": filtered,
        "squared": squared,
        "total": total,
        "average": average
    }

# 测试
data = [1, 2, 3, 4, 5, -1, 0, 7, 8, 9]
result = process_data(data)
print(result)

3. 最佳实践

3.1 代码风格

Python
# 使用PEP 8命名规范
def calculate_average(numbers):
    """计算平均值"""
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

# 使用类型注解
def greet(name: str) -> str:
    """打招呼函数"""
    return f"你好,{name}!"

# 使用文档字符串
def divide(a: float, b: float) -> float:
    """
    除法函数

    Args:
        a: 被除数
        b: 除数

    Returns:
        除法结果

    Raises:
        ZeroDivisionError: 当除数为0时
    """
    if b == 0:
        raise ZeroDivisionError("除数不能为零")
    return a / b

3.2 错误处理

Python
def safe_divide(a, b):
    """安全除法,带错误处理"""
    try:
        return a / b
    except ZeroDivisionError:
        print(f"错误:不能除以零")
        return None
    except TypeError as e:
        print(f"错误:{e}")
        return None

# 测试
result1 = safe_divide(10, 2)
result2 = safe_divide(10, 0)
print(f"10 / 2 = {result1}")
print(f"10 / 0 = {result2}")

4. 练习题

基础练习

  1. 实现经典案例
  2. 实现斐波那契数列
  3. 实现阶乘计算
  4. 测试函数

进阶练习

  1. 实现实用功能
  2. 实现文件读写
  3. 实现数据处理
  4. 实现安全除法

项目练习

  1. 创建工具类
  2. 创建计算器类
  3. 创建文件管理类
  4. 创建数据处理类

5. 总结

本章提供了丰富的Python代码示例。

6. 下一步

继续学习10-学习建议