>>>PyPathPython 学习站
首页›基础篇›kp-001
基础篇 · Foundations lv.1 入门 kp-001

Python 是什么

前置知识:无

1. 一句话定义

Python 是一门解释执行、动态强类型、以可读性为首要设计目标的通用高级编程语言,由 Guido van Rossum 于 1989 年底开始设计,1991 年首次发布。

2. 为什么重要

  • 它是数据科学与 AI 时代事实上的"胶水语言"标准(NumPy、PyTorch、pandas 全部以它为入口)。
  • 它同时覆盖脚本自动化、Web 后端、测试运维,一门语言可以服务多种职业方向。
  • 它的语法接近伪代码,是学习"编程思维"本身阻力最小的语言之一。

3. 前置知识

无。会使用电脑与浏览器即可。

4. 核心概念

  • 解释执行:代码不需要先编译成机器码,由解释器逐句执行;开发反馈快,运行慢于编译型语言。
  • 动态类型:变量不需要声明类型,类型跟着值走。
  • 强类型:类型虽动态但不乱猜——"1" + 1 会报 TypeError,而不是悄悄转换(对比 JavaScript 的弱类型)。
  • CPython:用 C 写成的参考实现,是"默认的 Python"。此外还有 PyPy(JIT 加速)、MicroPython(嵌入式)等实现,日常说 Python 默认指 CPython。
  • 多范式:过程式、面向对象、函数式都支持,不强迫任何一种。

5. 原理与机制

输入的 .py 源码会先被 CPython 编译成字节码(bytecode,可缓存为 __pycache__/*.pyc),再由虚拟机逐条解释执行。可用 dis 模块看到字节码:

python
import dis

def add(a, b):
    return a + b

dis.dis(add)

这正是 Python"运行慢"的根源:每条字节码都要在解释循环里派发。2023 年起的 CPython 3.13 实验性 JIT 与 PEP 703 去除 GIL,都是针对这一层的演进(见 kp-039)。

6. 关键事实(模型/图示)

text
源码 .py  →  编译  →  字节码 .pyc  →  CPython 虚拟机解释执行
                         ↑ 缓存于 __pycache__/

  • 版本演进:1991 首版 → 2000 Python 2 → 2008 Python 3(不兼容的大改)→ 2020-01-01 Python 2 停止维护 → 2024/2025 年代主版本为 3.12/3.13。
  • 命名灵感来自喜剧团体 Monty Python,不是蟒蛇,但蟒蛇标志已成为文化符号。

7. 直观类比

Python 像一台自动挡汽车:不用管挡位(类型声明)和离合(编译),上手就能开;代价是激烈驾驶(极致性能)时不如手动挡(C/Rust)。CPython 解释器则是那台发动机——你几乎从不打开引擎盖,但知道它在哪有助于诊断问题。

8. 实例与案例

bash
# 最小验证:解释器能跑,一切就绪
python3 -c "print('hello, python')"
python3 --version

进入交互式解释器(REPL)后 >>> 提示符下可直接实验,是本知识库推荐的学习主战场。

9. 常见误区

  1. "Python 不能有类型" —— 强类型不等于静态类型;Python 3.5 起有类型注解(kp-026),只是运行时不强制。
  2. "学了 Python 语法就等于会 Python" —— 真正的分水岭在对象模型与工程能力(阶段二、三)。
  3. 把 python2 的教程当最新资料 —— 语法(print 语句)与语义(整数除法)均已过时,认准 Python 3 文档。

10. 自测题

  1. "1" + 1 在 Python 中会发生什么?说明这体现了哪种类型特征。
  2. CPython、PyPy、MicroPython 的关系是什么?默认说的 Python 指哪个?
  3. Python 2 何时停止维护?为什么学习资料必须认准 Python 3?
参考答案
  1. 抛出 TypeError——动态但不弱类型,字符串与整数不隐式转换。
  2. 都是实现(implementation);CPython 是 C 写的参考实现,是默认与事实标准。
  3. 2020-01-01。print 语句、/ 除法语义、unicode 默认等大量差异,旧教程会教出错误直觉。

11. 与其他知识点的关系

  • 下一步:kp-002 环境搭建。
  • 机制延伸:kp-029(GIL 与并发模型)、kp-046(社区与历史脉络)。

12. 延伸阅读

  • Python 官方教程第 1 章:https://docs.python.org/zh-cn/3/tutorial/
  • History of Python(官方 Wiki):https://wiki.python.org/moin/HistoryOfPython