这是本文档旧的修订版!
第一章:环境搭建与Hello World
本章目标
完成本章学习后,你将能够:
- 理解Python的工作原理(解释器、字节码、虚拟机)
- 在Windows、macOS、Linux上安装Python
- 配置Python开发环境
- 编写并运行你的第一个Python程序
- 了解Python代码的执行流程
Python工作原理详解
解释型语言的本质
Python是一种解释型语言,但这并不意味着它直接解释执行源代码。Python的执行过程实际上包含多个步骤:
源代码 → 词法分析 → 语法分析 → 编译为字节码 → Python虚拟机执行
让我们详细解析这个过程:
1. 词法分析(Lexical Analysis)
词法分析器将源代码字符流转换为Token序列。Token是编程语言中的最小有意义的单元。
例如,代码 `x = 3 + 5` 会被分解为:
- IDENTIFIER(x)
- ASSIGN(
- NUMBER(3)
- PLUS(+)
- NUMBER(5)
2. 语法分析(Syntax Analysis / Parsing)
语法分析器将Token序列转换为抽象语法树(AST, Abstract Syntax Tree)。AST以树形结构表示代码的语法结构。
例如,`x = 3 + 5` 的AST大致为:
Assign( targets=[Name(id='x', ctx=Store())], value=BinOp( left=Constant(value=3), op=Add(), right=Constant(value=5) ) )
你可以使用Python的 `ast` 模块查看AST:
import ast code = "x = 3 + 5" tree = ast.parse(code) print(ast.dump(tree, indent=2))
3. 编译为字节码(Compilation to Bytecode)
Python编译器将AST转换为字节码(Bytecode)。字节码是一种中间表示形式,类似于机器码,但是为Python虚拟机(PVM, Python Virtual Machine)设计的。
查看函数的字节码:
import dis def hello(): x = 3 + 5 print(x) dis.dis(hello)
输出示例:
3 0 LOAD_CONST 1 (8)
2 STORE_FAST 0 (x)
4 4 LOAD_GLOBAL 0 (print)
6 LOAD_FAST 0 (x)
8 CALL_FUNCTION 1
10 POP_TOP
12 LOAD_CONST 0 (None)
14 RETURN_VALUE
4. Python虚拟机执行
Python虚拟机是一个栈式虚拟机,它执行字节码指令。每条指令通常执行一个简单的操作,如加载常量、执行加法、调用函数等。
CPython、Jython、IronPython、PyPy
Python有多种实现:
| 实现 | 特点 | 使用场景 |
| CPython | 官方实现,C语言编写,最常用 | 通用开发 |
| Jython | Java平台实现,可与Java互操作 | Java生态集成 |
| IronPython | .NET平台实现 | Windows/.NET开发 |
| PyPy | JIT编译实现,执行速度快 | 性能敏感应用 |
| MicroPython | 嵌入式设备优化 | 物联网、单片机 |
Python安装详解
Windows安装
方法一:官方安装包
- 访问Python官网下载页面
- 下载Windows installer (64-bit)
- 运行安装程序,勾选“Add Python to PATH”
- 选择“Install Now”或“Customize installation”
安装选项说明:
- Install launcher for all users —— 为所有用户安装Python启动器
- Add Python to PATH —— 将Python添加到系统环境变量(强烈推荐)
- Install for all users —— 为所有用户安装
- Precompile standard library —— 预编译标准库,加快导入速度
- Download debugging symbols —— 下载调试符号,开发Python本身时使用
- Download debug binaries —— 下载调试二进制文件
方法二:Microsoft Store
Windows 10/11可以通过Microsoft Store安装Python:
- 打开Microsoft Store
- 搜索“Python”
- 选择Python 3.11或更高版本安装
方法三:包管理器(推荐开发者使用)
使用Chocolatey:
choco install python
使用Winget:
winget install Python.Python.3.11
macOS安装
方法一:官方安装包
下载macOS installer并运行即可。
方法二:Homebrew(推荐)
Homebrew是macOS最流行的包管理器:
# 安装Homebrew(如果尚未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装Python brew install python # 安装特定版本 brew install python@3.11
方法三:pyenv(推荐开发者使用)
pyenv用于管理多个Python版本:
# 安装pyenv brew install pyenv # 配置shell(添加到~/.zshrc) echo 'eval "$(pyenv init -)"' >> ~/.zshrc # 安装Python版本 pyenv install 3.11.0 pyenv install 3.10.0 # 设置全局版本 pyenv global 3.11.0 # 设置本地版本(项目级别) cd myproject pyenv local 3.10.0
Linux安装
Ubuntu/Debian
# 更新包列表 sudo apt update # 安装Python sudo apt install python3 python3-pip python3-venv # 验证安装 python3 --version pip3 --version
CentOS/RHEL/Fedora
# CentOS 8/RHEL 8/Fedora sudo dnf install python3 python3-pip # CentOS 7 sudo yum install python3 python3-pip
Arch Linux
sudo pacman -S python python-pip
验证安装
安装完成后,验证Python是否正确安装:
# 检查Python版本 python --version # 或 python3 --version # 进入Python交互式解释器 python # 你应该看到类似: # Python 3.11.0 (main, Oct 24 2022, 18:26:48) # [Clang 14.0.0] :: Anaconda, Inc. on darwin # Type "help", "copyright", "credits" or "license" for more information. # >>>
开发环境配置
Python虚拟环境
为什么需要虚拟环境?
不同项目可能依赖不同版本的包。虚拟环境为每个项目创建独立的Python环境,避免包版本冲突。
venv(标准库)
# 创建虚拟环境 python -m venv myenv # 激活虚拟环境 # Windows: myenv\Scripts\activate # macOS/Linux: source myenv/bin/activate # 退出虚拟环境 deactivate
virtualenv
功能更强大的第三方工具:
pip install virtualenv # 创建虚拟环境 virtualenv myenv # 指定Python版本 virtualenv -p python3.10 myenv
Conda
Anaconda/Miniconda提供的包和环境管理:
# 创建环境 conda create -n myenv python=3.11 # 激活环境 conda activate myenv # 退出环境 conda deactivate # 删除环境 conda remove -n myenv --all
pip包管理
pip是Python的包安装程序:
# 安装包 pip install requests # 安装特定版本 pip install requests==2.28.1 # 安装最新版本但不低于指定版本 pip install 'requests>=2.28.0' # 从requirements.txt安装 pip install -r requirements.txt # 查看已安装包 pip list # 导出依赖 pip freeze > requirements.txt # 卸载包 pip uninstall requests
IDE配置
VS Code配置
1. 安装VS Code 2. 安装Python扩展(Microsoft官方) 3. 选择Python解释器(Ctrl+Shift+P → Python: Select Interpreter) 4. 配置settings.json:
{
"python.defaultInterpreterPath": "python3",
"editor.formatOnSave": true,
"python.formatting.provider": "black",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true
}
PyCharm配置
1. 下载并安装PyCharm(Community版免费) 2. 创建新项目时选择Python解释器 3. 配置虚拟环境:File → Settings → Project → Python Interpreter
第一个Python程序
Hello World
创建文件 `hello.py`:
# hello.py print("Hello, World!")
运行程序:
python hello.py
输出:
Hello, World!
程序解析
- `# hello.py` —— 注释,以#开头,Python会忽略
- `print()` —— 内置函数,用于输出内容到控制台
- `“Hello, World!”` —— 字符串字面量,用双引号包裹
与用户交互
# 获取用户输入 name = input("请输入你的名字: ") print(f"你好, {name}!") # 简单计算 age = input("请输入你的年龄: ") age = int(age) # 将字符串转换为整数 print(f"明年你将 {age + 1} 岁")
Python代码执行方式
1. 交互式解释器
直接在命令行输入 `python` 进入交互模式:
>>> 2 + 3 5 >>> print("Hello") Hello >>> import math >>> math.pi 3.141592653589793
特点:
- 即时执行,适合测试小段代码
- 输入 `exit()` 或按 Ctrl+D(macOS/Linux)/ Ctrl+Z(Windows)退出
- 使用 `_` 获取上一个表达式的结果
2. 脚本文件
将代码保存为 `.py` 文件,然后执行:
python script.py
3. 模块运行
使用 `-m` 参数运行模块:
# 运行http.server模块 python -m http.server 8000 # 运行pip模块 python -m pip install requests # 运行unittest python -m unittest discover
4. IDE/编辑器运行
在VS Code、PyCharm等IDE中,通常有运行按钮或快捷键(如F5、Ctrl+F5)。
Python代码风格
缩进规则
Python使用缩进表示代码块,而不是大括号:
# 正确 if True: print("正确") print("缩进一致") # 错误 if True: print("正确") print("缩进不一致") # IndentationError
- 推荐使用4个空格作为缩进
- 不要混合使用Tab和空格
- 大多数编辑器可以设置将Tab自动转换为空格
注释
# 单行注释 """ 多行注释(文档字符串) 用于函数、类、模块的文档说明 """ # 行内注释 count = 0 # 计数器初始化
命名规范(PEP 8)
- 变量名:小写,下划线分隔(snake_case)— `user_name`
- 函数名:小写,下划线分隔 — `get_user_info()`
- 类名:首字母大写(CamelCase)— `UserProfile`
- 常量:全大写,下划线分隔 — `MAX_SIZE`
- 私有成员:前缀单下划线 — `_internal_value`
- 强私有:前缀双下划线 — `private_value` * 特殊方法:前后双下划线 — `init`, `str__`
本章练习
1. 环境检查:验证Python安装,记录Python版本号 2. Hello You:修改Hello World程序,让它输出你的名字 3. 简单计算器:编写程序接收两个数字,输出它们的和、差、积、商 4. 温度转换:编写程序将摄氏温度转换为华氏温度(公式:F = C × 9/5 + 32) 5. 个人信息卡:编写程序收集姓名、年龄、职业,格式化输出个人信息卡片
本章小结
本章我们学习了:
- Python的解释执行原理
- 在各种操作系统上安装Python
- 配置虚拟环境和开发工具
- 编写和运行第一个Python程序
- Python代码的基本风格规范
掌握了这些基础知识,你已经准备好进入Python编程的世界了!