~/VibeHandbook
免费 PDF

编程语言

python.org

Python

是什么

想象有人递给你一个箱子,却不告诉你里面装了什么;你只有打开才知道。Python 处理数据就是这样——它不要求你预先声明变量里放的是什么,而是在程序运行时才判断它装的是哪种值。这就是"动态类型"的意思。Python 是一门高级的动态类型语言,以可读性和庞大的生态系统著称。它随处可运行,读起来几乎像伪代码,是数据科学、机器学习、脚本编写和后端服务领域默认的通用语言。

优势

  • 平缓的学习曲线和出了名的可读语法。
  • 巨大的库生态(PyPI,Python 的软件包库)——numpy、pandas、requests、FastAPI,以及几乎所有 AI/ML 框架。
  • 非常适合胶水代码、自动化、原型开发和数据工作。
  • 强大的 REPL(边输入边看结果的交互式提示符)和 notebook 文化,便于交互式探索。

取舍

  • 在纯 CPU 密集型工作上较慢;GIL(一把每次只允许一个线程的锁)限制了真正的多线程。
  • 想象一张没人核对的表格上的笔误,直到真正提交时才被发现。Python 也类似:它通常只有在那行代码真正运行时,才会注意到类型错误(例如把数字当成文本来用),而不是事先发现。也就是说,它在运行时才捕获这些错误,除非你加上类型提示并配合 mypy 或 pyright 这类检查器。
  • 依赖与环境管理(pip、venv、poetry、uv)是反复出现的摩擦来源。
  • 打包并交付一个独立的二进制文件比较别扭。

何时使用

当你想要快速推进时就选 Python:数据管道、ML 模型训练与推理、自动化脚本、内部工具,以及开发速度比纯运行速度更重要的 Web (应用程序接口)。对于任何与 AI 或数据相关的工作,它都是最稳妥的默认选择。

与 vibe coding 的契合度

AI 助手在 Python 上表现极为出色——它是其训练数据中占比最高的语言,因此生成的代码通常地道且可运行。要想很好地指挥 AI,请指明你想要的确切库和版本(例如"使用 FastAPI 和 Pydantic v2"),要求加上类型提示,让你和模型都有据可依,并在一开始就索取一份 requirements.txtpyproject.toml 以避免版本漂移。让助手添加一个小测试或一个可运行的 if __name__ == "__main__" 代码块,这样你就能在继续之前验证每一步。

from collections import Counter

def top_words(text: str, n: int = 3) -> list[tuple[str, int]]:
    words = (w.lower() for w in text.split())
    return Counter(words).most_common(n)

print(top_words("the cat the dog the bird"))  # [('the', 3), ('cat', 1), ('dog', 1)]