python 学习之基础增强教程

以下是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')]

通过以上内容的学习,你将能够:

  1. 编写更Pythonic的代码
  2. 处理复杂程序结构
  3. 提升代码性能和可维护性
  4. 应对实际开发中的常见场景

建议配合实际项目练习,并阅读Python官方文档加深理解。

相关推荐
Li emily3 分钟前
解决了用美股历史数据api分析价格波动的困扰
数据库·人工智能·python
Xpower 177 分钟前
PHM念叨叨系列--工业场景大模型幻觉治理
人工智能·python·语言模型
请数据别和我作队9 分钟前
基于 DeepSeek API 的 ASR 文本纠错脚本实战:Python 多线程批量处理 JSONL 语音转写数据
开发语言·经验分享·python·自然语言处理·nlp
Circ.41 分钟前
文本相似性对比python代码
开发语言·python·相似度
Ahtacca1 小时前
基于决策树算法的动物分类实验:Mac环境复现指南
python·算法·决策树·机器学习·ai·分类
萌>__<新1 小时前
AI聊天助手-测试报告
人工智能·python
sg_knight1 小时前
设计模式实战:观察者模式(Observer)
python·观察者模式·设计模式
Humbunklung1 小时前
WMO 天气代码(Code Table 4677)深度解析与应用报告
开发语言·数据库·python
weixin_449290011 小时前
uv打包Python为exe步骤
开发语言·python·uv
书到用时方恨少!1 小时前
Python threading 使用指南:并发编程的轻骑兵
python·多线程·thread·多任务