CodeRoad Map 程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。
由 程序员柏风 独立维护 · 关于作者
学习 更多
Python 是什么 解释型语言、应用领域、在本站路线图中的位置。
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 脚本
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("这行永远执行不到")
第一行正常执行
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:看清自己的定位
用户登录、进度写入 → 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 会试错、脚本会运行,就拿到了后面十一课的门票。
延伸