09 - 代码示例¶
经典案例、实用代码、最佳实践
📖 章节概述¶
本章将提供丰富的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. 练习题¶
基础练习¶
- 实现经典案例
- 实现斐波那契数列
- 实现阶乘计算
- 测试函数
进阶练习¶
- 实现实用功能
- 实现文件读写
- 实现数据处理
- 实现安全除法
项目练习¶
- 创建工具类
- 创建计算器类
- 创建文件管理类
- 创建数据处理类
5. 总结¶
本章提供了丰富的Python代码示例。
6. 下一步¶
继续学习10-学习建议。