Python
0 配置环境
0.0 安装python环境
- 官网下载地址:https://www.python.org/downloads/
- 安装时 务必勾选 "Add Python to PATH" (Windows 用户)
验证是否安装成功:
python --version
# 或
python3 --version

0.1 ✅ 在vscode安装python扩展
在 VS Code 中安装官方 Python 扩展:
推荐同时安装 Pylance(通常会自动安装),它提供更强大的语言支持。
0.2 ✅ 选择 Python 解释器
方法一:通过命令面板选择
- 打开一个
.py文件或项目文件夹 - 按下
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 输入并选择:Python: Select Interpreter
- 从列表中选择你希望使用的 Python 版本(例如系统 Python、虚拟环境中的 Python 等)

方法二:在设置中指定(可选)
你也可以在工作区的 .vscode/settings.json 中手动指定:
{
"python.defaultInterpreterPath": "/path/to/your/python"
}
0.3 ✅ 第三步:选择 Python 解释器
VS Code 需要知道使用哪个 Python 解释器来运行和调试代码。
方法一:通过命令面板选择
如果你使用的是虚拟环境(如
venv、conda、poetry),请先激活它,然后选择对应的解释器路径,例如:
- Windows:
.\venv\Scripts\python.exe- macOS/Linux:
./venv/bin/python
方法二:在设置中指定(可选)
你也可以在工作区的 .vscode/settings.json 中手动指定:
{
"python.defaultInterpreterPath": "/path/to/your/python"
}
0.4 ✅ 第四步(推荐):使用虚拟环境(Virtual Environment)
- 创建虚拟环境(以 venv 为例)

# 在项目根目录执行
python -m venv venv

- 在文件夹地址栏输入
cmd回车,直接打开 CMD
执行:
venv\Scripts\activate
你会看到命令行前缀变成:
(venv) D:\A_Project\Python_Project\2025_12_18_howland>

-
Windows(PowerShell):
.\venv\Scripts\Activate.ps1 -
Windows(CMD):
.\venv\Scripts\activate.bat -
macOS / Linux:
source venv/bin/activate
0.5 ✅ 第五步:安装第三方库
0.5.1 pip install 安装
激活虚拟方式后直接在虚拟方式里使用pip install 安装
python
pip install
0.5.2 🌐 网络慢?换国内镜像源
例如使用阿里云、清华源加速安装:
临时使用镜像安装(推荐): 在命令后面加上 -i 参数和镜像地址。
# 使用清华镜像源安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
0.5.3 永久修改镜像源:
- 方法一:执行下列命令
如果你不想每次都输入长长的地址,可以执行以下命令一键配置:
python
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
常用镜像源:
- 清华:
https://pypi.tuna.tsinghua.edu.cn/simple - 阿里云:
https://mirrors.aliyun.com/pypi/simple/ - 豆瓣:
https://pypi.douban.com/simple/
- 方法二:在虚拟环境下新建pip.ini文件夹永久配置镜像源(以 Windows 为例):

-
在用户目录下创建
pip 文件夹(如C:\Users\你的用户名\pip) -
新建文件
pip.ini -
内容如下:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn
0.5.4 确认库确定库是否安装成功?
- 命令行检查 :输入
pip list,查看列表中是否包含你刚才安装的库。 - 代码测试 :在 Python 文件中输入
import 库名。如果没有出现波浪线报错,说明环境已识别。 - 并且检查解释器是否为建立的虚拟环境
python
import sys
print(sys.executable)

1 Powershell
1.1 Powershell 小技巧指令
| 正确命令 | 功能 |
|---|---|
Clear-Host 或 cls |
清屏 |
Get-ChildItem 或 gci |
列出文件 |
Get-Location 或 gl |
显示当前路径 |
clc不是 PowerShell 的正确命令,应该是Clear-Host或cls
1.2 实用快捷键
Tab- 自动补全命令/路径Ctrl+C- 中断当前命令F7- 显示命令历史窗口↑/↓- 浏览历史命令Ctrl+L- 清屏(部分版本支持)
1.3 Python 相关 PowerShell 命令
powershell
# 检查 Python 版本
python --version
python3 --version
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
.\venv\Scripts\activate # Windows PowerShell
# 退出虚拟环境
deactivate
# 安装包
pip install package_name
# 列出已安装包
pip list
2 使用python的SymPy库求解方程式
\\begin{cases} i_{in} = \\dfrac{u_n-u_x}{R_1}\\\\ u_x-u_o = i_{in} \\cdot R_2\\\\ u_x = \\dfrac{i_l \\cdot R_3}{R_3 + R_4} \\cdot R_3 \\end{cases} \\tag{1-1}
-
有上述三式子求解i_L
-
i_L = \\dfrac{u_o - i_L \\cdot R_L}{R_0} - \\dfrac{i_L \\cdot R_L}{R_3 + R_4} \\tag{1-2}
SymPy 的符号表达式是"引用式"的,不是"值复制"式的。
2.1 Sympy引用式符号表达式,确保"先定义,后引用"
python
ux = iL * RL * R3 / (R3 + R4)
iin = (un - ux) / R1
uo = -R2 * iin + ux
并不是像数值计算那样"立刻算出值并赋进去",而是:
iin引用了已经定义好的uxuo引用了已经定义好的iin和ux
依赖关系应该是:
iL → ux → iin → uo
⚠️ 顺序改变会导致"引用链"不同, 改变顺序(比如把 ux 放最后):
python
iin = (un - ux) / R1 # ← 此时 ux 还没定义!
uo = -R2 * iin + ux # ← ux 也没定义
ux = iL * RL * R3 / (R3 + R4)
iin里的ux是未定义符号,不是你想的那个表达式- 所以整个链就"断"了,结果自然不对
2.2 解决办法
2.2.1 ✅方法 1:始终先定义底层变量,再定义高层变量
所以代码顺序必须是:
ux = ... # 依赖 iL
iin = F(ux) # 依赖 ux
uo = F(ux,iin) # 依赖 iin 和 ux
2.2.2 ✅方法 2:使用 Lambda 函数或函数封装(推荐用于复杂系统)
def get_ux(iL_val):
return iL_val * RL * R3 / (R3 + R4)
def get_iin(un_val, iL_val):
return (un_val - get_ux(iL_val)) / R1
def get_uo(un_val, iL_val):
ux_val = get_ux(iL_val)
iin_val = (un_val - ux_val) / R1
return -R2 * iin_val + ux_val
这样顺序就由函数调用控制,不易出错。
2.2.3 ✅方法 3:用 SymPy 的 subs() 显式代入(更清晰)
# 先写出所有原始关系(用符号表示)
ux_expr = iL * RL * R3 / (R3 + R4)
iin_expr = (un - ux) / R1
uo_expr = -R2 * iin + ux
# 然后代入
uo_final = uo_expr.subs({
ux: ux_expr,
iin: iin_expr.subs(ux, ux_expr)
})
这样即使顺序乱,也能正确替换。
2.2.4 ✅方法 4:重新赋值以反映最新依赖关系
python
# 第一次定义(早期)
ux = uo * R1 / (R1 + R2)
iin = (up - ux) / R3
uo = solve(..., uo)[0] # ← 这里 uo 被重新赋值为一个不含 uo 的表达式!
# 第二次定义(关键!)
ux = uo * R1 / (R1 + R2) # 用新的 uo 重新计算 ux
iin = (up - ux) / R3 # 用新的 ux 重新计算 iin
# 最后用最新的 iin 和 ux 建立方程
equation = -R4*iin + ux - iL*RL
iL2 = solve(equation, iL)[0]
关键点 1:uo 在中间被重新赋值了
-
第一次:
uo = solve((uo - iL*RL)/R0 - iL + iin, uo)[0]这行代码解出了
uo 的显式表达式 (只含iL,up,R0~R3 等,不再包含uo自身)。📌 此时
uo变成了一个"展开后的代数表达式"。 -
但此时
ux 和iin 还是基于旧的 uo (符号变量) 定义的,所以它们不包含正确的 uo 表达式。
关键点 2:第二次重新计算 ux 和 iin
✅ 这相当于手动"刷新"了依赖链!