强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

01 - Python 概述

第 01 章:Python 概述

了解 Python 的前世今生,理解其设计哲学,掌握版本演进脉络。


1.1 Python 的历史

1.1.1 起源

Python 由荷兰程序员 Guido van Rossum(吉多·范罗苏姆)于 1989 年圣诞节期间开始开发,1991 年发布第一个公开版本(0.9.0)。

名字来源并非蟒蛇,而是英国喜剧团体 Monty Python’s Flying Circus

1.1.2 版本时间线

年份版本里程碑
19910.9.0首次公开发布,支持类、函数、异常处理
19941.0正式发布,加入 lambda、map、filter
20002.0加入列表推导、垃圾回收、Unicode 支持
20083.0不向后兼容的重大重构,全面 Unicode
20153.5类型提示(Type Hints)、async/await
20183.7dataclasses、breakpoint()
20213.10结构化模式匹配(match/case)
20223.11性能提升 10–60%、异常组
20233.12移除 distutils、改进 f-string
20243.13JIT 编译器实验、free-threaded 模式

1.1.3 Python 2 vs Python 3

Python 2 于 2020 年 1 月 1 日正式停止维护。所有新项目应使用 Python 3。

差异点Python 2Python 3
printprint "hello"print("hello")
整除3 / 2 = 13 / 2 = 1.5
字符串ASCII 默认Unicode 默认
编码# -*- coding: utf-8 -*-默认 UTF-8
输入raw_input()input()

1.2 设计哲学:The Zen of Python

在 Python 交互式环境中输入以下命令:

>>> import this

输出全文:

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

核心原则解读

原则含义示例
优美优于丑陋代码应当具有美感使用列表推导而非冗长循环
显式优于隐式明确意图func(arg=value) 优于位置参数
简单优于复杂优先选择简单方案使用内置函数而非自造轮子
可读性很重要代码被阅读的次数远多于编写有意义的变量名
拒绝猜测的诱惑不确定时不要假设类型转换要显式

1.3 CPython 的实现机制

Python 是一门解释型语言,但实际执行过程包含编译步骤:

源代码 (.py)
    ↓ [编译]
字节码 (.pyc / __pycache__)
    ↓ [解释执行]
CPython 虚拟机

Python 的多种实现

实现说明适用场景
CPython官方实现,C 语言编写通用开发
PyPyJIT 编译,速度提升 5–10 倍计算密集型
Jython运行在 JVM 上Java 集成
IronPython运行在 .NET 上.NET 集成
MicroPython微控制器优化嵌入式开发
Cython编译为 C 扩展性能关键模块

1.4 适用场景

✅ Python 擅长的领域

领域代表库/框架典型应用
Web 开发Django, FastAPI, FlaskAPI 服务、网站后端
数据科学NumPy, Pandas, Matplotlib数据分析、可视化
机器学习PyTorch, TensorFlow, scikit-learn模型训练、推理
自动化运维Ansible, Fabric, Paramiko服务器管理、CI/CD
爬虫Scrapy, BeautifulSoup, Playwright数据采集
脚本与工具subprocess, pathlib文件处理、系统管理
科学计算SciPy, SymPy数值模拟、符号运算
教育Turtle, Jupyter编程入门、交互式学习

❌ Python 不擅长的领域

领域原因替代方案
系统级编程无法直接操作内存C / Rust
移动端开发缺乏原生支持Swift / Kotlin
前端开发浏览器不支持JavaScript / TypeScript
实时系统GIL 限制并发Go / Elixir
游戏引擎性能不足C++ / C#

1.5 Python 生态系统

1.5.1 包管理

# 安装第三方包
$ pip install requests

# 从 requirements.txt 安装
$ pip install -r requirements.txt

# 使用国内镜像源
$ pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

1.5.2 核心生态一览

Python 生态系统
├── 包管理:pip, poetry, pdm, uv, conda
├── 虚拟环境:venv, virtualenv, conda
├── 测试:pytest, unittest, hypothesis
├── 代码质量:ruff, black, mypy, pylint
├── 文档:Sphinx, MkDocs
├── Web:Django, Flask, FastAPI
├── 数据:Pandas, NumPy, Polars
├── ML:PyTorch, TensorFlow, scikit-learn
└── 部署:Docker, Gunicorn, uvicorn

1.5.3 PyPI(Python Package Index)

PyPI 是 Python 官方的第三方包仓库:

  • 官网:https://pypi.org/
  • 截至 2025 年,超过 50 万个
  • 每月下载量超过 数十亿次

1.6 Python 与其他语言对比

特性PythonJavaScriptJavaGoRust
类型系统动态动态静态静态静态
执行方式解释JIT编译+JIT编译编译
学习曲线
性能中高极高
并发模型GIL事件循环线程Goroutine无数据竞争
典型用途数据/自动化Web 全栈企业应用云原生系统编程

1.7 注意事项

🔴 注意

  • 不要在生产环境使用 Python 2,它已于 2020 年停止维护
  • Python 3.8 也已停止安全更新,建议使用 3.11+
  • GIL(Global Interpreter Lock)限制了 CPU 密集型任务的多线程性能
  • Python 的动态类型带来灵活性的同时也增加了运行时错误的风险

💡 提示

  • 使用 python --version 检查当前版本
  • 推荐使用 pyenv 管理多个 Python 版本
  • 阅读 PEP 8 了解代码风格规范
  • 阅读 PEP 20 了解设计哲学

📌 业务场景: 一家电商公司使用 Python 构建了完整的数据管线:

  1. Scrapy 爬取竞品价格
  2. Pandas 清洗和分析数据
  3. scikit-learn 训练价格预测模型
  4. FastAPI 提供推荐 API
  5. Docker 容器化部署

这展示了 Python “胶水语言” 的强大能力——用统一的语言连接不同系统。


1.8 扩展阅读