Python

Python

0 配置环境

0.0 安装python环境

验证是否安装成功:

复制代码
python --version
# 或
python3 --version

0.1 ✅ 在vscode安装python扩展

在 VS Code 中安装官方 ​Python 扩展

推荐同时安装 Pylance(通常会自动安装),它提供更强大的语言支持。


0.2 ✅ 选择 Python 解释器

方法一:通过命令面板选择

  1. 打开一个 .py 文件或项目文件夹
  2. 按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板
  3. 输入并选择:Python: Select Interpreter
  4. 从列表中选择你希望使用的 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)

  1. 创建虚拟环境(以 venv 为例)
复制代码
# 在项目根目录执行
python -m venv venv
  1. 在文件夹地址栏输入 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 永久修改镜像源:

  1. 方法一:执行下列命令

如果你不想每次都输入长长的地址,可以执行以下命令一键配置:

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/
  1. 方法二:在虚拟环境下新建pip.ini文件夹永久配置镜像源(以 Windows 为例):
  1. 在用户目录下创建 pip​ 文件夹(如 C:\Users\你的用户名\pip

  2. 新建文件 pip.ini

  3. 内容如下:

    复制代码
    [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-Hostcls

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 引用了已经定义好的 ux
  • uo 引用了已经定义好的 iinux

依赖关系应该是:

复制代码
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

✅ 这相当于手动"刷新"了依赖链!

相关推荐
鹿鹿学长1 小时前
从英伟达开源Nemotron 3.5看“本地跑大模型“:一张显卡够用的时代来了
python·自动化
燐妤1 小时前
中老年智能健康管理项目
python·ai·pycharm·vue3·fastapi·项目开发·健康
小龙报1 小时前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
前端 贾公子1 小时前
第08章:中间件(1)
python
Sylvia33.1 小时前
篮球数据API的技术架构与工程实践:基于火星数据WebSocket实时推送体系
java·python·websocket·网络协议·架构
DogDaoDao2 小时前
【第10篇】Python 异常处理与调试入门
python·深度学习·ai·程序员·大模型·异常处理与调试
程序员雷欧2 小时前
Java 反射深度解析:从原理到源码的全面剖析
java·开发语言·python
我的xiaodoujiao3 小时前
快速学习Python基础知识详细图文教程18--多线程
开发语言·python·学习·测试工具