Python 编程教程
欢迎学习 Python 编程!本教程将带你从零基础开始,逐步掌握 Python 的核心知识和技能。
什么是 Python?
Python 是一种高级、解释型、面向对象的编程语言。它具有以下特点:
- 简单易学:语法简洁清晰,易于阅读和编写
- 功能强大:拥有丰富的基础库和第三方库
- 应用广泛:可用于 Web 开发、数据分析、人工智能、自动化等多个领域
- 跨平台:支持 Windows、Linux、macOS 等多种操作系统
为什么学习 Python?
- 易学易用:Python 的语法非常友好,适合编程初学者
- 就业前景好:Python 开发人才需求量大,薪资待遇优厚
- 应用领域广:Web 开发、数据科学、人工智能、自动化等
- 社区活跃:拥有庞大的开发者社区和丰富的学习资源
Python 版本演进
Python 诞生于 1991 年,由 Guido van Rossum 创建。了解 Python 版本演进有助于选择合适的版本和理解现代 Python 特性。
重要的版本里程碑
| 版本 | 发布时间 | 重要特性 |
|---|---|---|
| 2.0 | 2000 | 列表推导式、垃圾回收 |
| 2.7 | 2010 | 最后一个 2.x 版本,2020 年停止维护 |
| 3.0 | 2008 | 不兼容 2.x,print 函数化、整数除法 |
| 3.5 | 2015 | async/await、类型注解、矩阵乘法运算符 |
| 3.6 | 2016 | f-strings、变量类型注解、异步生成器 |
| 3.7 | 2018 | 数据类(dataclasses)、async/await 保留字 |
| 3.8 | 2019 | 海象运算符 :=、位置参数 / |
| 3.9 | 2020 | 字典合并运算符 ` |
| 3.10 | 2021 | 结构模式匹配 match-case |
| 3.11 | 2022 | 显著性能提升(快 25%)、异常组和 except* |
| 3.12 | 2023 | 类型参数语法 def func[T]()、改进的 f-string |
| 3.13 | 2024 | 新交互式解释器、实验性 JIT、自由线程 |
Python 3.12 新特性速览
Python 3.12 于 2023 年 10 月发布,带来了多项语言和性能改进:
类型参数语法(PEP 695):
# 以前的方式
from typing import TypeVar, Generic
T = TypeVar('T')
class Stack(Generic[T]):
...
# Python 3.12+ 新语法
class Stack[T]:
def __init__(self):
self._items: list[T] = []
# 类型别名
type Point = tuple[float, float]
type Vector[T] = list[tuple[T, T]]
改进的 f-string(PEP 701):
# 以前不支持的功能现在可以使用了
# 引号重用
songs = ['Take me back to Eden', 'Alkaline']
f"This is the playlist: {', '.join(songs)}"
# 多行表达式和注释
f"This is the playlist: {
', '.join([
'Take me back to Eden', # 注释
'Alkaline',
'Ascensionism'
])
}"
# 嵌套 f-string
f"{f"{f"{1+1}"}"}" # '2'
性能改进:
- 列表、字典、集合推导式内联,速度提升最多 2 倍
asyncio性能提升,部分场景快 75%isinstance()对运行时可检查协议提速 2-20 倍
Python 3.13 新特性速览
Python 3.13 于 2024 年 10 月发布,引入了多项实验性特性:
新的交互式解释器:
# 默认启用新的 REPL,基于 PyPy 项目
# 支持:
# - 多行编辑和历史保存
# - 彩色提示和回溯
# - F1 交互式帮助
# - F2 历史浏览
# - F3 粘贴模式
# 禁用新 REPL
# 设置环境变量 PYTHON_BASIC_REPL=1
实验性自由线程(无 GIL 模式):
# 使用自由线程构建的 Python (python3.13t)
# 允许真正的并行执行
# 检查是否支持自由线程
python3.13t -VV
# 输出包含 "experimental free-threading build"
# 运行时控制
python3.13t -X gil=0 # 禁用 GIL
python3.13t -X gil=1 # 启用 GIL
实验性 JIT 编译器:
# 构建时启用 JIT
./configure --enable-experimental-jit
# 运行时控制
export PYTHON_JIT=1 # 启用 JIT
export PYTHON_JIT=0 # 禁用 JIT
增量式垃圾回收:
import gc
# GC 现在是增量式的
# 最大暂停时间减少一个数量级以上
# 新的 GC 行为
gc.collect(1) # 执行增量收集
如何选择 Python 版本
| 场景 | 推荐版本 | 理由 |
|---|---|---|
| 新项目学习 | 3.12+ | 现代语法、最佳性能 |
| 生产环境 | 3.11 或 3.12 | 稳定、性能好、生态成熟 |
| 企业项目 | 3.10+ | match-case、类型提示完善 |
| 维护旧项目 | 根据项目要求 | 逐步迁移到新版本 |
关于 Python 2
Python 2 已于 2020 年 1 月 1 日停止维护。所有新项目应使用 Python 3.8 或更高版本。
教程目录
本教程分为以下几个阶段:
基础阶段
进阶阶段
高级阶段
标准库
- 常用标准库 - os、sys、json、datetime、re、collections 等常用模块
工程实践
- 虚拟环境管理 - venv、Poetry、Conda 等环境管理工具
- 性能优化 - 性能分析工具和优化策略
- 调试技巧 - pdb、logging、IDE 调试方法
- 测试 - unittest、pytest 测试框架
- 常用第三方库 - requests、numpy、pandas 等常用库
学习建议
1. 动手实践
编程是一门实践技能,光看不练是学不会的。每学一个知识点,都要:
- 亲自敲一遍示例代码,不要复制粘贴
- 尝试修改代码参数,观察不同结果
- 自己编写小程序巩固知识
2. 循序渐进
按照教程顺序学习,不要跳跃:
- 基础不牢,地动山摇
- 前面的知识往往是后面的基础
- 遇到不懂的,回头复习相关章节
3. 善用调试
学会调试比学会编码更重要:
# 使用 print 调试
print(f"变量值: {variable}")
# 使用 logging(生产环境推荐)
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("调试信息")
# 使用 pdb 调试器
import pdb; pdb.set_trace() # Python 3.6 及以下
breakpoint() # Python 3.7+ 推荐方式
4. 阅读官方文档
Python 官方文档是最权威的参考:
- 语言参考:语法细节和语义定义
- 库参考:标准库的完整说明
- 教程:适合初学者的入门指南
5. 编写可读代码
遵循 PEP 8 编码规范:
# 好的命名
user_name = "Alice" # 变量用小写下划线
MAX_CONNECTIONS = 100 # 常量用大写下划线
class UserAccount: # 类名用驼峰
pass
def calculate_total(items: list) -> float:
"""计算总价,函数名用小写下划线"""
pass
# 适当使用空行分隔逻辑块
def process_data(data):
# 数据验证
if not data:
return None
# 数据处理
result = transform(data)
# 返回结果
return result
6. 使用类型注解
从 Python 3.5 开始,类型注解让代码更清晰:
from typing import Optional
def find_user(user_id: int) -> Optional[dict]:
"""
查找用户信息。
Args:
user_id: 用户 ID
Returns:
用户信息字典,未找到返回 None
"""
# IDE 可以提供更好的代码补全
pass
7. 编写测试
养成编写测试的习惯:
def add(a: int, b: int) -> int:
return a + b
# 使用 pytest
def test_add():
assert add(1, 2) == 3
assert add(-1, 1) == 0
assert add(0, 0) == 0
参考资源
官方资源
- Python 官方文档 - 最权威的参考资料
- Python 官方教程 - 官方入门教程
- PEP 索引 - Python 增强提案
学习资源
- Real Python - 高质量 Python 教程
- Python 之禅 - Python 设计哲学
- Awesome Python - Python 资源汇总
在线练习
- LeetCode - 算法练习
- Exercism - 编程练习平台
- HackerRank - Python 专项练习
准备好开始学习了吗?点击下一章开始你的 Python 编程之旅!