飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • 第1章 Python简介

    • Python是什么
    • 安装与运行
    • 交互式解释器
    • 注释与编码规范
  • 第2章 变量与数据类型

    • 变量与对象
    • 整数 int
    • 浮点数 float
    • 复数 complex
    • 布尔值 bool
    • 字符串 str
    • 空值 None
    • 类型转换
  • 第3章 运算符与表达式

    • 算术运算符
    • 比较运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算符
    • 身份与成员运算符
    • 海象运算符
    • 运算符优先级
  • 第4章 流程控制

    • if 语句
    • if-else 语句
    • if-elif-else 语句
    • match-case 语句
    • 条件表达式(三元运算符)
    • while 循环
    • for 循环
    • range 函数
    • break 与 continue
    • 循环的 else 子句
    • pass 语句
  • 第5章 数据结构

    • 列表创建与索引
    • 列表方法
    • 列表推导式
    • 元组
    • 序列解包
    • 集合
    • 字典创建与访问
    • 字典方法
    • 字典推导式
    • range 对象
  • 第6章 函数

    • 定义函数
    • 位置参数与关键字参数
    • 默认参数
    • 可变参数
    • 解包实参
    • 函数返回值
    • lambda 表达式
    • 文档字符串与注解
    • 作用域与命名空间
    • global 与 nonlocal
  • 第7章 模块与包

    • 模块导入
    • 模块搜索路径
    • 包与相对导入
    • 标准库概览
  • 第8章 文件与输入输出

    • 文件读写
    • 上下文管理器
    • 字符串格式化
    • JSON 与 CSV
  • 第9章 面向对象

    • 类与对象
    • 方法
    • 实例变量与类变量
    • 私有变量
    • 继承
    • 多重继承
    • 魔术方法
    • 属性装饰器
    • 数据类 dataclass
  • 第10章 异常处理

    • 语法错误与异常
    • try-except
    • 异常链与 raise
    • 清理操作
    • 自定义异常
  • 第11章 迭代器与生成器

    • 迭代器协议
    • 生成器
    • 生成器表达式
    • 迭代工具
  • 第12章 高级特性

    • 装饰器
    • 函数式编程
  • 第13章 工程实践

    • 测试与调试
    • 代码质量
    • 虚拟环境

安装与运行

Python 解释器在不同平台上的安装路径各异。Unix 系统通常将 Python 3.12 安装在 /usr/local/bin/python3.12,Windows 用户若从 Microsoft Store 安装,可直接使用 python3.12 命令;若安装了 py.exe launcher,则可用 py 命令启动。无论哪种方式,核心目标都是让 python 命令能在终端中被找到。

安装与验证

安装完成后,在终端输入版本检查命令确认环境就绪:

$ python3.12 --version
Python 3.12.13

若提示命令未找到,说明解释器路径未加入系统 PATH。Unix 用户可将安装目录加入 shell 的搜索路径;Windows 用户可勾选安装向导中的 "Add Python to PATH",或手动在环境变量中追加安装目录。验证失败的典型表现是:

$ python3.12 --version
bash: python3.12: command not found

启动与退出解释器

直接输入 python3.12 或 py 即可进入交互式解释器。启动时会显示版本信息、编译器信息和版权声明,随后出现主提示符 >>>:

$ python3.12
Python 3.12.13 (main, Oct  1 2025, 12:34:56) [GCC 12.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

退出解释器有三种方式。Unix 系统按 Ctrl-D 发送文件结束符;Windows 系统按 Ctrl-Z 后回车;或者在提示符下输入 quit():

>>> quit()
$  # 回到系统 shell,退出状态码为 0

如果 quit() 也无法退出(极少数环境限制),还可以用 raise SystemExit 强制终止解释器进程。

运行脚本的四种方式

方式一:直接执行脚本文件

将代码写入 .py 文件,把文件名作为参数传给解释器。这是最常见的运行方式:

# hello.py
print("Hello, Python 3.12")
$ python3.12 hello.py
Hello, Python 3.12

方式二:-c 执行单行命令

python -c command 将字符串当作 Python 语句执行,效果类似 shell 的 -c 选项。由于 Python 语句常包含空格,建议用引号包裹整个命令:

$ python3.12 -c "import sys; print(sys.version)"
3.12.13 (main, Oct  1 2025, 12:34:56) [GCC 12.0]

若忘记加引号,shell 会把空格当作参数分隔符,导致解析失败:

$ python3.12 -c import sys; print(sys.version)
  File "<string>", line 1
    import
         ^
SyntaxError: invalid syntax

方式三:-m 执行模块

python -m module 将模块当作脚本执行,等效于写出模块的完整路径。这种方式常用于运行标准库工具,如 http.server、venv、pip:

$ python3.12 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 ...

$ python3.12 -m venv myenv  # 创建虚拟环境

方式四:-i 交互式运行脚本

在脚本参数前加 -i,脚本执行完毕后不会退出,而是进入交互模式,保留脚本执行后的全局命名空间。这对调试极有用:

# config.py
threshold = 100
data = [23, 56, 120, 89]
$ python3.12 -i config.py
>>> threshold  # 脚本中的变量仍然可用
100
>>> [x for x in data if x > threshold]
[120]

命令行参数与 sys.argv

解释器把脚本名和后续参数转化为字符串列表,存入 sys.argv。该列表至少有一个元素;不同启动方式下,sys.argv[0] 的值也不同:

# args_demo.py
import sys
print(f"参数列表: {sys.argv}")
print(f"脚本名/命令: {sys.argv[0]}")
$ python3.12 args_demo.py a b c
参数列表: ['args_demo.py', 'a', 'b', 'c']
脚本名/命令: args_demo.py

$ python3.12 -c "import sys; print(sys.argv)" a b
['-c', 'a', 'b']

$ echo "print(1)" | python3.12 - a b
['-', 'a', 'b']

$ python3.12 -m http.server 8000
# sys.argv[0] 为 '/usr/lib/python3.12/http/server.py'

注意:-c 或 -m 之后的选项不会被解释器处理,而是原样留在 sys.argv 中,由用户代码自行解析。这意味着 python -m myapp --debug 中的 --debug 会完整传递给 myapp。

交互模式与提示符

当解释器与终端(tty)关联时,进入交互模式。主提示符 >>> 等待输入下一条语句;输入多行结构(如 if、for、def)时,解释器显示次要提示符 ...,提示继续输入:

>>> x = 10
>>> if x > 5:
...     print("大于 5")
...     print("继续缩进")
...
大于 5
继续缩进

多行输入必须以空行结束,告诉解析器代码块已完结。如果忘记输入空行,解释器会持续显示 ...,等待更多内容:

>>> def add(a, b):
...     return a + b
...  # 这里按回车,空行表示结束
>>> add(2, 3)
5

源文件字符编码

Python 3.12 源码文件默认采用 UTF-8 编码,支持世界上大多数语言的字符直接出现在字符串、注释甚至标识符中。但为保证代码可移植,标准库仅使用 ASCII 字符作为变量名和函数名。

若必须使用其他编码,需在文件第一行声明:

# -*- coding: cp1252 -*-
# 此文件使用 Windows-1252 编码
message = "Café"  # 非 ASCII 字符需编辑器支持该编码

如果文件以 shebang 行开头,编码声明必须放在第二行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("编码声明在 shebang 之后")

编码声明错误或不匹配会导致 SyntaxError。例如,文件实际以 UTF-8 保存却声明为 cp1252,或编辑器以 GBK 保存却未声明,中文字符就会乱码或触发解码错误:

# 若编辑器以 GBK 保存且未声明编码
# 以下代码在 UTF-8 默认环境下可能报错
# SyntaxError: non-utf-8 code starting with '\xb5'

行编辑功能检测

在支持 GNU Readline 的系统上,解释器提供交互式编辑、历史替换和代码补全。检测是否支持的最快方法是:在首次出现 >>> 时按 Ctrl-P。如果听到提示音,说明支持行编辑;如果无反应或回显 ^P,则不支持,只能用退格键删除字符。

>>>  # 按 Ctrl-P
# 若听到"哔"声,支持行编辑和历史记录
# 若显示 ^P,不支持

行编辑功能让交互体验大幅提升:按上箭头可调出历史命令,按 Tab 可补全变量名和模块名,这些特性在后续章节会深入介绍。

上一页
Python是什么
下一页
交互式解释器