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官方文档加深理解。

相关推荐
battlestar3 分钟前
Siemens Smart 200 PLC 通讯(基于python-)
前端·网络·python
人类群星闪耀时28 分钟前
回溯法经典练习:组合总和的深度解析与实战
开发语言·python
时光呢28 分钟前
JAVA泛型的作用
java·windows·python
夏莉莉iy30 分钟前
[CVPR 2025]Neuro-3D: Towards 3D Visual Decoding from EEG Signals
人工智能·python·深度学习·神经网络·机器学习·3d·线性回归
木卯1 小时前
使用 Pytest 编写 SQLAlchemy 异步单元测试
python·单元测试
iiiiiankor1 小时前
vscode/cursor中python运行路径设置 &&模块导入问题
ide·vscode·python
Draina2 小时前
使用命令行工具控制wireshark对抓包文件进行针对性处理的总结
python·安全·wireshark
Karl_zhujt2 小时前
Python JSON模块loads、load、dump、dumps详解
python
黄金旺铺2 小时前
【Python-OpenCV】手势控制贪吃蛇
开发语言·python·opencv·pygame·mediapipe