完成本章学习后,你将能够:
Python是一种解释型语言,但这并不意味着它直接解释执行源代码。Python的执行过程实际上包含多个步骤:
源代码 → 词法分析 → 语法分析 → 编译为字节码 → Python虚拟机执行
让我们详细解析这个过程:
词法分析器将源代码字符流转换为Token序列。Token是编程语言中的最小有意义的单元。
例如,代码 `x = 3 + 5` 会被分解为:
语法分析器将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))
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
Python虚拟机是一个栈式虚拟机,它执行字节码指令。每条指令通常执行一个简单的操作,如加载常量、执行加法、调用函数等。
Python有多种实现:
| 实现 | 特点 | 使用场景 |
| CPython | 官方实现,C语言编写,最常用 | 通用开发 |
| Jython | Java平台实现,可与Java互操作 | Java生态集成 |
| IronPython | .NET平台实现 | Windows/.NET开发 |
| PyPy | JIT编译实现,执行速度快 | 性能敏感应用 |
| MicroPython | 嵌入式设备优化 | 物联网、单片机 |
安装选项说明:
Windows 10/11可以通过Microsoft Store安装Python:
使用Chocolatey:
choco install python
使用Winget:
winget install Python.Python.3.11
下载macOS installer并运行即可。
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用于管理多个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
# 更新包列表 sudo apt update # 安装Python sudo apt install python3 python3-pip python3-venv # 验证安装 python3 --version pip3 --version
# CentOS 8/RHEL 8/Fedora sudo dnf install python3 python3-pip # CentOS 7 sudo yum install python3 python3-pip
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 -m venv myenv # 激活虚拟环境 # Windows: myenv\Scripts\activate # macOS/Linux: source myenv/bin/activate # 退出虚拟环境 deactivate
功能更强大的第三方工具:
pip install virtualenv # 创建虚拟环境 virtualenv myenv # 指定Python版本 virtualenv -p python3.10 myenv
Anaconda/Miniconda提供的包和环境管理:
# 创建环境 conda create -n myenv python=3.11 # 激活环境 conda activate myenv # 退出环境 conda deactivate # 删除环境 conda remove -n myenv --all
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
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
}
1. 下载并安装PyCharm(Community版免费) 2. 创建新项目时选择Python解释器 3. 配置虚拟环境:File → Settings → Project → Python Interpreter
创建文件 `hello.py`:
# hello.py print("Hello, World!")
运行程序:
python hello.py
输出:
Hello, World!
# 获取用户输入 name = input("请输入你的名字: ") print(f"你好, {name}!") # 简单计算 age = input("请输入你的年龄: ") age = int(age) # 将字符串转换为整数 print(f"明年你将 {age + 1} 岁")
直接在命令行输入 `python` 进入交互模式:
>>> 2 + 3 5 >>> print("Hello") Hello >>> import math >>> math.pi 3.141592653589793
特点:
将代码保存为 `.py` 文件,然后执行:
python script.py
使用 `-m` 参数运行模块:
# 运行http.server模块 python -m http.server 8000 # 运行pip模块 python -m pip install requests # 运行unittest python -m unittest discover
在VS Code、PyCharm等IDE中,通常有运行按钮或快捷键(如F5、Ctrl+F5)。
Python使用缩进表示代码块,而不是大括号:
# 正确 if True: print("正确") print("缩进一致") # 错误 if True: print("正确") print("缩进不一致") # IndentationError
# 单行注释 """ 多行注释(文档字符串) 用于函数、类、模块的文档说明 """ # 行内注释 count = 0 # 计数器初始化
1. 环境检查:验证Python安装,记录Python版本号
2. Hello You:修改Hello World程序,让它输出你的名字
3. 简单计算器:编写程序接收两个数字,输出它们的和、差、积、商
4. 温度转换:编写程序将摄氏温度转换为华氏温度(公式:F = C × 9/5 + 32)
5. 个人信息卡:编写程序收集姓名、年龄、职业,格式化输出个人信息卡片
本章我们学习了:
掌握了这些基础知识,你已经准备好进入Python编程的世界了!