跳到主要内容

入门导览、解释器与第一个程序

本节目标

从 Python 3.14 解释器、REPL 与脚本运行到第一个完整程序,建立零基础查询 Python 手册的入口。

这一入门导览既可顺序阅读,也可在安装或运行遇阻时直接查询。内容从确认 Python 3.14 解释器开始,依次说明 REPL、脚本、命令字符串与模块入口,最后用一个输出固定的程序串起完整流程;出现错误时,可按文末的顺序定位。阅读不以 C、C++ 或其他语言经验为前提。

安装并确认 Python 3.14

先在终端运行:

python3.14 --version

系统若提供平台启动器,也可以由它选择并查询 Python 3.14,例如 Windows 上常见的 py -3.14 --version。解释器位置会随操作系统、安装器、虚拟环境和管理员策略变化,本手册因而不假定某条通用安装路径。版本命令显示 Python 3.14.x,且后续命令始终调用同一个解释器,才是需要建立的检查基线。

pythonpython3python3.14 同时存在时,名称本身不足以证明版本,须分别运行 --version。本手册以 Python 3.14 为基线,允许补丁版本不同;复现实验或排错时应同时记录完整版本输出和实际使用的命令。

要确认的事情查询方式如何解释
当前命令的版本python3.14 --version应显示 Python 3.14 的版本号
当前命令的可执行文件python3.14 -c "import sys; print(sys.executable)"输出当前进程实际使用的路径
当前实现python3.14 -c "import sys; print(sys.implementation.name)"CPython 会输出 cpython

解释器、REPL、脚本与模块

Python 解释器负责读取并执行 Python 代码,同一个解释器可从四种常见入口接收代码。入口应按任务选择:

入口示例适合什么
TTY 交互模式(REPL)在终端输入 python3.14立即输入一个表达式或短语句,观察结果
文件脚本python3.14 hello_runtime.py保存、复查并重复运行一段程序
命令字符串python3.14 -c "print(2 + 3)"从终端或工具执行很短的一次性代码
模块入口python3.14 -m module_name按模块名查找并执行模块或包提供的入口

REPL 是“读取、求值、输出、循环”的交互环境,适合立即观察表达式结果。普通启动时,只有当标准输入连接到交互终端(TTY)且没有给出脚本、-c-m 等入口,解释器才通常显示 >>> 提示符。脚本不会自动展示普通表达式;需要可见输出时须显式调用 print()

-i 会在脚本、-c-m 执行结束后进入交互模式;对应的环境控制是 PYTHONINSPECT。这种显式的执行后交互模式可用于检查脚本或命令留下的全局名称,也不要求标准输入看起来像终端。

-c 后的字符串就是待执行代码,而命令行引号会先由当前 shell 处理。代码一旦复杂,写入文件更容易把 shell 引号问题与 Python 问题分开。-m 接收模块名而非文件路径,并按 Python 的模块查找规则定位代码;完整导入系统不属于本章范围。

源码编码、缩进、名称与注释

Python 源文件默认按 UTF-8 解码,可以直接书写中文注释和字符串。新项目通常保持这一默认值;只有确实要使用其他编码时,才在文件开头声明。若编辑器保存编码与解释器读取编码不一致,程序甚至可能在开始执行前就报告编码或语法错误。

缩进是 Python 语法的一部分,不只是排版。冒号后的代码块必须缩进,同一代码块的缩进层级必须一致。推荐每级使用四个空格,并让编辑器显示不可见字符,避免混用制表符和空格带来的歧义:

if ready:
print("开始")

名称用于引用对象。Python 虽允许广泛的 Unicode 标识符,但名称需要在不同键盘、字体和工具间使用,或供团队协作时,还应易输入、易分辨、易搜索;英文小写单词配合下划线通常更稳妥,例如 actual_version# 从当前位置开始一行注释,适合解释原因和边界,而非复述代码表面含义。字符串不能代替普通注释,单独放在某些位置时还会成为文档字符串。

第一个完整程序

下面的程序以主、次版本为第一道检查。若不是 Python 3.14,它把诊断写入标准错误并返回退出状态 1;版本符合时,则向标准输出写三行固定文本并返回 0。固定输出可将程序结果与解释器提示符明确区分开。

main() 在这里仍是普通函数名。文件作为脚本执行时,特殊名称 __name__ 的值为 "__main__"if __name__ == "__main__" 因而会调用入口函数;同一文件日后被其他代码导入时,这个守卫可避免入口自动运行。理解这层脚本入口语义即可,无须先掌握完整导入系统。

hello_runtime.py
import sys

EXPECTED_VERSION = (3, 14)


def main() -> int:
actual_version = sys.version_info[:2]
if actual_version != EXPECTED_VERSION:
print(
f"error: expected Python 3.14, got {actual_version[0]}.{actual_version[1]}",
file=sys.stderr,
)
return 1

print("Hello, Python!")
print("version=3.14")
print("mode=script")
return 0


if __name__ == "__main__":
raise SystemExit(main())
Hello, Python!
version=3.14
mode=script

把文件保存后,在它所在目录运行 python3.14 hello_runtime.py。终端中看到的三行应与上面的输出逐字一致;>>> 是 REPL 提示符,不是脚本输出,也不应复制进源文件。

语法错误、异常与 traceback

解释器无法按 Python 语法解析程序时,会报告 SyntaxError,并给出文件、行号及可能的指示位置。检查应从附近的括号、引号、冒号和缩进开始;真正遗漏的符号也可能位于所指位置的上一行。

代码已经开始执行却无法完成某个操作时,会引发异常;未处理的异常通常产生 traceback。可按以下固定顺序阅读:

  1. 先读 traceback 最后一行,确认异常类型和消息,例如 NameError: name 'count' is not defined
  2. 再从调用帧中追踪到自己的代码,优先看文件名、行号和对应源码;库内部帧提供调用路径,但不一定是根因。
  3. 回到最接近失败操作的用户代码,核对传入的值、名称和前置条件,然后从那里向上追踪调用者。

异常类型说明失败类别,消息补充本次失败的细节;两者都要保留。traceback 默认写到标准错误,不应与程序的正常标准输出混为一谈。修复错误后重新运行同一条命令,确认退出状态和输出都恢复到预期。

首批阅读路线与查询方法

顺序学习可沿“运行方式 → 对象与名称 → 容器 → 表达式和控制流 → 函数 → 类型标注”推进。每掌握一个概念,就用短小且输入固定的脚本验证;无需等到记住全部语法才开始编写程序。

把本手册当作查询工具时,先描述任务或症状,再选择入口:

当前问题查询入口
不确定解释器是否正确本章的“安装并确认 Python 3.14”
不知道该用 REPL、脚本、-c 还是 -m本章的“解释器、REPL、脚本与模块”
看到缩进、语法或运行时错误本章的源码规则与 traceback 阅读顺序
不理解变量为何变化、值属于什么类型下一章的对象、名称与基本类型

接下来阅读对象、名称、赋值与基本类型,建立后续所有容器、控制流和函数章节都会使用的对象模型词汇。