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

相关推荐
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar7 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780517 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_7 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机14 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机15 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机15 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机15 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i15 小时前
drf初步梳理
python·django
每日AI新事件15 小时前
python的异步函数
python