跳到主要内容

Python 编程教程

欢迎学习 Python 编程!本教程将带你从零基础开始,逐步掌握 Python 的核心知识和技能。

什么是 Python?

Python 是一种高级、解释型、面向对象的编程语言。它具有以下特点:

  • 简单易学:语法简洁清晰,易于阅读和编写
  • 功能强大:拥有丰富的基础库和第三方库
  • 应用广泛:可用于 Web 开发、数据分析、人工智能、自动化等多个领域
  • 跨平台:支持 Windows、Linux、macOS 等多种操作系统

为什么学习 Python?

  1. 易学易用:Python 的语法非常友好,适合编程初学者
  2. 就业前景好:Python 开发人才需求量大,薪资待遇优厚
  3. 应用领域广:Web 开发、数据科学、人工智能、自动化等
  4. 社区活跃:拥有庞大的开发者社区和丰富的学习资源

Python 版本演进

Python 诞生于 1991 年,由 Guido van Rossum 创建。了解 Python 版本演进有助于选择合适的版本和理解现代 Python 特性。

重要的版本里程碑

版本发布时间重要特性
2.02000列表推导式、垃圾回收
2.72010最后一个 2.x 版本,2020 年停止维护
3.02008不兼容 2.x,print 函数化、整数除法
3.52015async/await、类型注解、矩阵乘法运算符
3.62016f-strings、变量类型注解、异步生成器
3.72018数据类(dataclasses)、async/await 保留字
3.82019海象运算符 :=、位置参数 /
3.92020字典合并运算符 `
3.102021结构模式匹配 match-case
3.112022显著性能提升(快 25%)、异常组和 except*
3.122023类型参数语法 def func[T]()、改进的 f-string
3.132024新交互式解释器、实验性 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 等常用模块

工程实践

学习建议

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 编程之旅!