大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
Python 是什么
这一课你将能做到
- 在本机安装 Python 3.12 并用
python --version验证成功 - 在交互环境(REPL)里完成一次表达式计算和一次字符串格式化
- 口头说清「解释型语言」的含义,以及什么任务适合用 Python、什么任务应该留给 Java
为什么要学
你会遇到这些活儿:批量重命名 200 个文件、清洗一份脏 CSV、调一个大模型 API 做实验、写个小爬虫抓数据。这些事用 Java 写要建工程、写类、配 Maven;用 Python 往往一个文件几十行就搞定。Python 不是用来替代你主栈的,是让你多一把快刀。
人话:Python 是一门「读起来接近英语」的通用编程语言。它的设计哲学写在 import this 里——「可读性 counts」。它把编译环节省掉了,你写完保存就能跑,这种「改一行、按一下、看结果」的节奏,让它成为脚本、数据处理和 AI 领域的默认选择。
本站主业务 API 是 Java(Spring Boot),这条 Python 线补的是三块能力:脚本自动化、数据处理、AI 生态入口。分工想清楚,学起来才不纠结。
先建立图像
Python 的执行路径:
你写的 .py 文件 → CPython 解释器 → 边翻译边执行
对照 Java 的执行路径:
你写的 .java 文件 → javac 编译 → .class 字节码 → JVM 执行
| Python | Java(本站后端) | |
|---|---|---|
| 启动成本 | 一个文件就能跑 | 需要工程结构 |
| 编译环节 | 无(解释器直接跑) | javac 编译成字节码 |
| 强项场景 | 脚本、数据、AI、快速验证 | 高并发业务、事务、大型系统 |
| 类型检查 | 运行时才知道对错 | 编译期就拦住大部分错误 |
| 包管理 | pip + PyPI | Maven / Gradle |
| 站内角色 | 工具与扩展能力 | 主栈 |
一个直觉:Python 像「顺手计算器 + 瑞士军刀」,Java 像「生产线上的精密机床」。生产线不会换成计算器,但谁桌上都会放一把瑞士军刀。
跟着做
步骤 1:安装 Python 并确认版本
Windows:到 python.org/downloads 下载安装包,安装第一步务必勾选 "Add python.exe to PATH",这是初学者最常见的翻车点。macOS 可用 brew install python@3.12。
打开终端(Windows 用 PowerShell,macOS 用 Terminal),输入:
python --version
应看到类似:
Python 3.12.4
如果提示找不到命令,依次尝试:py -3 --version(Windows 启动器)、python3 --version(macOS/Linux 常见命名)。三个都不行,就是 PATH 没配好,重装时勾选即可。
步骤 2:一行代码冒烟测试
python -c "print('Hello CodeRoadMap')"
终端打印:
Hello CodeRoadMap
-c 的意思是「把引号里的代码当作程序直接执行」,适合快速验证解释器活着。正式逻辑要写成 .py 文件,下一步就做。
步骤 3:写第一个脚本文件
新建文件夹 python-lab,在里面建 hello.py,输入:
print("我的第一个 Python 脚本")
print("3 秒后自动加载完成") # 这行只是演示 print 可以连续调用
保存后在终端进入该文件夹并运行:
python hello.py
输出:
我的第一个 Python 脚本
3 秒后自动加载完成
注意和 Java 的区别:没有 public class,没有 main 方法,没有分号。Python 的哲学是「最少的仪式感」。
步骤 4:进入交互环境(REPL)玩五分钟
终端直接输入 python(不带文件名),提示符会变成 >>>:
>>> 1 + 2
3
>>> 2 ** 10 # ** 是幂运算,2 的 10 次方
1024
>>> name = 'CodeRoadMap'
>>> f'站点:{name}'
'站点:CodeRoadMap'
>>> len(name)
11
>>> exit()
REPL 的价值:随时验证一个小语法点,不用建文件。后面每节课遇到拿不准的写法,第一反应都应该是「扔进 REPL 试一下」。exit() 或 Ctrl+Z(Windows)回车退出。
步骤 5:亲眼看「解释执行」
故意写一个有运行时错误才暴露的文件 bug.py:
print("第一行正常执行")
print(1 + "a") # 数字加字符串,运行到这里才报错
print("这行永远执行不到")
运行:
python bug.py
输出:
第一行正常执行
Traceback (most recent call last):
File "bug.py", line 2, in <module>
print(1 + "a")
~~^~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'str'
对比 Java:这段代码在 javac 阶段就编译不过。Python 没有编译期类型检查,错误要到执行那一行才炸——这就是「解释型 + 动态类型」的代价,也是第 11 课异常处理要解决的核心问题。
步骤 6:看清自己的定位
打开路线图 /roadmaps/python 扫一眼节点,然后在笔记里写下三行:
- 用户登录、进度写入 → Java / Spring Boot(业务域、事务在后端)
- 批量检查 drafts 字数 → Python(扫盘脚本短平快)
- 调模型 API 做实验 → Python(生态示例最多)
能口述这三行的取舍理由,本课过关。
讲清楚要点
- 解释执行 ≠ 没有编译:CPython 内部会把源码编译成字节码(
__pycache__目录里的.pyc),但对你透明,也没有独立的编译步骤要管。你只需要记住体感差异:保存即可运行。 - 动态类型是双刃剑:变量不用声明类型,写起来快;但类型错误拖到运行时才暴露,所以 Python 项目更要靠测试和异常处理兜底。
- 版本只认 Python 3:Python 2 在 2020 年已停止维护,网上教程若出现
print x(无括号)直接关掉。本轨按 3.12 讲,3.10+ 均可跟。 - 生态在 PyPI:官方标准库已经很全(文件、网络、JSON 都有),社区包(requests、pandas、numpy)是外挂军火库,第 9 课讲怎么装。
- Python 之于 Java 是补充不是替换:本站业务 API、鉴权、事务全在 Spring Boot;Python 负责脚本、数据清洗、AI 实验。两个都要会,才两边都占便宜。
你可能会懵的地方
-
为什么命令有时是
python,有时是python3? 历史遗留。macOS/Linux 系统自带的python常指向老的 Python 2,所以发行版把新版命名为python3;Windows 官方安装包则注册为python并提供py启动器。不用死记,原则是:哪条命令输出版本号是 3.10+,就用哪条。 -
学 Python 会不会和 Java 语法打架? 前两周可能偶尔串(比如给 Python 写分号),但变量、函数、循环、异常这些心智模型是共通的,只是写法不同。真正的风险是「都不精」,而不是「学会两个」。
-
要不要先装 PyCharm / VS Code? 不拦着,但不是门禁。本课只需要终端 + 记事本就能完成全部步骤。装了 VS Code 的话,加一个官方 Python 扩展即可获得语法高亮和运行按钮。
-
REPL 里输
>>> 1 + 2连>>>一起复制进去报错了?>>>是提示符,表示「该你输了」,不是代码的一部分。复制示例时只复制>>>后面的内容。 -
学了这门课就能做 AI 开发吗? 这门课给你 AI 开发的「入场券」——语法、文件、模块、异常。真正的 AI 应用还需要第 12 课指引的后续路线(HTTP 调用、数据处理)。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 安装时没勾 Add to PATH | 终端找不到 python 命令 | 重装并勾选,或手动把 Python 目录加入 PATH |
| 照着 Python 2 老教程学 | print x、xrange 等语法已废弃 | 只看 3.x 的文档和教程 |
| 所有代码都写在 REPL 里 | 关掉窗口代码就没了,无法复用 | 正式逻辑写 .py 文件,REPL 只做试验田 |
| 以为学 Python 就该把后端重写成 Django | 目标错位,主栈仍是 Java | Python 定位脚本/数据/AI,与 Spring Boot 分工 |
| 系统里裸装几十个第三方包 | 全局环境脏、依赖冲突 | 先跑标准库,第 9 课再学 venv 隔离 |
卡点急救
python命令找不到:新开一个终端窗口(老窗口不继承新 PATH);Windows 试py -3 --version;还不行就是安装时没勾 PATH,重装。- 运行
python hello.py打开了微软商店:Windows 的「应用执行别名」里有个假的 python 占位符。设置 → 应用 → 高级应用设置 → 应用执行别名,关掉两个 python 条目。 - 中文输出乱码:Windows 老终端可能默认 GBK。执行
chcp 65001切到 UTF-8,或改用 Windows Terminal。 python进去后输什么都报 SyntaxError:你可能在>>>提示符里输入了python hello.py这种终端命令。先exit()退回终端再执行。
面试常问
-
解释型语言和编译型语言的区别?Python 属于哪种? 编译型(如 C、Java)先把源码整体翻译成机器码/字节码再执行,错误能在编译期暴露;解释型逐条翻译执行,开发反馈快但运行时才暴露类型错误。Python 严格说是「先编译成字节码、再由解释器执行」,属于解释型阵营,业界也常称「脚本语言」。
-
Python 为什么慢?慢在哪? 主要在解释器逐条执行字节码、对象是动态类型(每次操作都要查类型),没有 JIT(默认 CPython)。所以计算密集型任务用 C 扩展(numpy)或换语言,Python 自己更适合 I/O 密集和胶水场景。
-
Python 的强项场景有哪些?为什么? 脚本自动化、数据科学、AI/ML、爬虫、测试工具。核心原因:语法开发效率高 + PyPI 生态在这些领域积累最深(pandas、numpy、pytorch)。
-
CPython、PyPy、Jython 是什么关系? 都是 Python 语言的实现。CPython 是官方默认(C 语言写的解释器);PyPy 带 JIT 更快但兼容性略有差异;Jython 跑在 JVM 上。日常说 Python 默认指 CPython。
自测三问
- 用自己的话说清:为什么写小脚本选 Python,而本站业务 API 用 Java?
- REPL 里输入
>>> f'站点:{name}'报错了,最可能的原因是什么? - 你本机查看 Python 版本的完整命令是什么?输出是多少?
小结一句话
Python 是可读性优先的解释型语言,本机装好 3.12、REPL 会试错、脚本会运行,就拿到了后面十一课的门票。
延伸
- The Python Tutorial — Whetting Your Appetite
- 站内:/roadmaps/python
- 下一课预告:语法与缩进——Python 用缩进划分代码块,这一条就劝退过无数从 Java 转来的人,下一课一次讲透。