以下是Python基础增强教程的进阶知识点整理,帮助巩固核心概念并提升编码能力:
一、Python高级特性
1. 列表推导式 & 生成器
python
# 列表推导式(快速生成列表)
squares = [x**2 for x in range(10) if x % 2 == 0] # [0,4,16,36,64]
# 生成器(节省内存)
gen = (x**2 for x in range(100000)) # 惰性计算
2. 装饰器(函数增强)
python
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f"耗时: {time.time()-start:.2f}s")
return result
return wrapper
@timer
def my_function():
time.sleep(1)
3. 上下文管理器(资源管理)
python
# 使用 with 自动关闭文件
with open('data.txt', 'r') as f:
content = f.read()
# 自定义上下文管理器
class DatabaseConnection:
def __enter__(self):
self.conn = connect_db()
return self.conn
def __exit__(self, exc_type, exc_val, exc_tb):
self.conn.close()
二、面向对象编程深入
1. 继承与多态
python
class Animal:
def speak(self):
raise NotImplementedError
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow~"
2. 魔术方法
python
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
三、异常处理进阶
python
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"错误: {e}")
# 记录日志后重新抛出
raise
else:
print("无异常时执行")
finally:
print("始终执行")
四、常用内置模块
1. collections模块
python
from collections import defaultdict, Counter
# 自动初始化字典
dd = defaultdict(list)
dd['key'].append(1)
# 计数器
cnt = Counter('abracadabra')
print(cnt.most_common(2)) # [('a',5), ('b',2)]
2. itertools模块
python
import itertools
# 组合迭代器
for pair in itertools.combinations('ABCD', 2):
print(pair) # ('A','B'), ('A','C')...
五、代码规范与优化
1. PEP8规范要点
- 缩进:4空格
- 行长度:不超过79字符
- 导入:分模块导入,避免
from module import *
- 命名规范:类用
CamelCase
,变量用snake_case
2. 性能优化技巧
python
# 使用join代替字符串拼接
result = ''.join([str(i) for i in range(100)])
# 局部变量访问更快
def calculate():
local_sqrt = math.sqrt # 缓存方法
return local_sqrt(100)
六、实战练习
1. 数据清洗任务
python
# 处理CSV文件,过滤无效数据
import csv
with open('data.csv') as f:
reader = csv.DictReader(f)
clean_data = [
row for row in reader
if float(row['price']) > 0
and row['name'].strip() != ''
]
2. 简易网页爬虫
python
import requests
from bs4 import BeautifulSoup
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html.parser')
titles = [h1.text for h1 in soup.find_all('h1')]
通过以上内容的学习,你将能够:
- 编写更Pythonic的代码
- 处理复杂程序结构
- 提升代码性能和可维护性
- 应对实际开发中的常见场景
建议配合实际项目练习,并阅读Python官方文档加深理解。