使用python撰写计算书

使用python撰写电路计算书

1、效果预览

下图是效果预览,可以写公式,画图,带单位计算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们通常写计算书,使用mathcad或者maple等商业软件,但是个人使用可能还行,在很多公司是不允许使用破解版的。这时候我们有另外一个选择,就是使用python来做。我将进行详细讲解。

2 软件安装

2.1 python安装

(1)在python的官网下载python安装包,建议安装最新版本
python官网
(2)配置环境变量
1、python.exe所在的文件夹加入path系统环境变量;
2、pip.exe所在的文件夹加入path系统环境变量;
在这里插入图片描述
(3)打开cmd,输入命令,更改pip源,如下设置为清华源,不设置的话,pip软件或者库下载速度非常慢

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pip更新到最新(如果python安装包为最新,通常pip源会默认安装为最新),使用10.0版本安装jupyter notebook时提示错误Microsoft Visual C++ 14.0 or greater is required

Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/

在cmd中查看python和pip的版本,

C:\Users\Administrator>pip -V
pip 20.1.1 from c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\pip (python 3.7)C:\Users\Administrator>python
Python 3.7.8rc1 (tags/v3.7.8rc1:5f3933d61d, Jun 17 2020, 16:59:29) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

2.2 安装计算书撰写软件jupyter notebook以及python相关库

(1)安装jupyter notebook,这是编辑器,在cmd里边输入命令

pip install jupyter notebook

(2)安装库handcalcs,这个最关键的数学公式渲染库

pip install handcalcs

(3)安装单位库forallpeople

pip install forallpeople

(4) 安装画图库matplot

pip install matplot

(5)安装数学库 numpy

pip install numpy

3. 软件使用

3.1 打开编辑器

在cmd里边输入 jupyter notebook,将会打开一个网页端

C:\Users\Administrator>jupyter notebook

打开的浏览器中,新建一个文件,就可以编写计算书了,此编辑器支持python代码,支持markdown文本,使用H,可以调出快捷键,使用ctrl+P,可以选择打印成PDF
在这里插入图片描述

3.2 计算书源文件

# 电路计算书
import handcalcs.render                 #公式显示工具
from math import sqrt, sin, pi          #导入sin和pi
import forallpeople as si               #引入单位支持库,并简称
si.environment('default')               #设置单位为默认
import matplotlib.pyplot as plt         #导入画图库
import numpy as np                      #导入数学库
# 1 输入条件
## 1.1 输入参数
%%render 2  #精度取2位
#Parameters#输入电压
U_input = 380*si.V#输入电流
I_input = 30*si.A#交流输入电阻
R_input = 7.8*si.Ohm
**三相输入波形**
plt.title("input voltage VS time")                          #图表标题
plt.xlabel("time(s)")                                       #x轴标题
plt.ylabel("Voltage(V)")                                    #Y轴标题
x = np.linspace(0, 4*pi, 1300)                              #设置X轴的范围
plt.xlim(0, 4*pi)                                           #设置X轴坐标范围
plt.ylim(-600, 600);                                        #设置Y轴坐标范围
my_x_ticks = np.arange(0, 4*pi, pi/2)                       #设置X轴的刻度
plt.xticks(my_x_ticks)                                      #设置X轴的刻度phaseA, = plt.plot(x, 537*np.sin(x), color='blue')          # 通过颜色名称指定
phaseB, = plt.plot(x, 537*np.sin(x + 2*pi/3), color='g')    # 通过颜色简写名称指定(rgbcmyk)
phaseC, = plt.plot(x, 537*np.sin(x + 4*pi/3), color='0.75') # 介于0-1之间的灰阶值
plt.legend(handles=[phaseA,phaseB,phaseC],labels=["phase A","phase B","phase C"],loc="upper right",fontsize=6)                     #设置图例
##  1.2 输出参数
%%render symbol              #只显示符号,不计算结果
alpha = pi/2                 #最大相位角 
%%render 2
#输入电压峰值
ans = sqrt(2)*sin(alpha)*U_input
# 2 计算结果
%%render  #竖向显示,精度默认
#long
#输入功率
P_input = sqrt(3)*I_input*U_input 
%%render 4  #横向显示,精度取4位
#short
#电压源电阻功耗计算
P_input_r = pow(U_input,2)/R_input 
%%render 2
#long 
#电流源电阻阻功耗计算
P_input_r = I_input**2*R_input
**提示:使用Ctrl+P进行打印转为PDF,按H显示快捷键**

搜索handcalcs forallpeople等库,可探索更加详细的使用方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矿用光缆型号和规格

管道矿用光缆生产厂家,矿用光缆特点是什么,矿用通信光缆 矿用光缆 MGTS光缆的结构是将250 m光纤套入高模量材料制成的松套管中,松套管内填充防水化合物。缆芯的中心是一根金属加强芯,对于某些芯数的光缆来说,金属加强…

【HCIP学习】BGP选路、过滤及属性

一、BGP路由选路原则(13条) 1、首先丢弃下一跳(NEXT_HOP)不可达的路由; 2、优选Preferred-value值最大的路由;默认为0; Preferred-value:定义:首选项。 属性值&#…

如何在 Linux / Ubuntu 上下载和安装 JMeter?

Apache JMeter 是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。 安装 Java(已安装 Java 的此步骤可跳过) 安装 Java 要下载 Java&…

序列到序列模型在语言识别Speech Applications中的应用 Transformer应用于TTS Transformer应用于ASR 端到端RNN

序列到序列模型在语言识别Speech Applications中的应用 A Comparative Study on Transformer vs RNN in Speech Applications 序列到序列(Seq2Seq)模型在语音识别(Speech Applications)中有重要的应用。虽然Seq2Seq模型最初是为了解决自然语言处理中的序列生成问题而设计的…

APP未上架应用市场,微信商户如何轻松开通APP支付?

在移动互联网时代,APP作为企业与用户之间的重要桥梁,其支付功能的完善与否直接关系到用户体验和企业的营收。然而,有些企业可能面临APP尚未上架应用市场的情况,这时如何开通微信APP支付功能呢?(需要超快捷高…

如何同时或者按顺序间隔启动多个程序

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,切换到定时器模块,快捷键:Ctrl3 2、新建一个定时器,我这里演示同时打开多个程序(比…

YOLOv9最新改进系列:融合空间信息关注机制(SimAM)于YOLOv9网络,在通道之间和空间位置之间建立更加准确的关联,助力YOLOv9有效涨点!!!

YOLOv9最新改进系列:融合空间信息关注机制(SimAM)于YOLOv9网络,在通道之间和空间位置之间建立更加准确的关联,助力YOLOv9有效涨点!!! 在此之前!先恭喜两位家人!&#xf…

WEB后端复习——Servlet

Servlet是运行在Web服务器或应用服务器上的java程序,它是一个中间层,负责连接来自web浏览器或其他HTTP客户程序和[HTTP服务器]上应用程序 Servlet执行下面的任务: 1)读取客户发送的显示数据。 2)读取由浏览器发送的隐式请求数据。…

JavaWeb文件上传/下载(Servlet)

效果 文件下载 文件上传 项目概述 Jakarta EE9&#xff0c;Web项目 项目文件结构 0 maven依赖&#xff0c;资源文件 <!-- lombok插件--> <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId&g…

C++STL初阶(1):string的使用及初阶原理

此文作为学习stl的笔记&#xff0c;许多普及、概念性的知识点将不再罗列&#xff08;如stl的发展、背景等&#xff09; 便于读者作为复习等方法了解。 0.STL简介&#xff08;笔记向&#xff09; STL不是祖师爷本贾尼实现的&#xff0c;是在惠普实验室中实现的。其作为一个数据结…

NASA数据集——2002-2011年全球18.7 至 89.0 千兆赫的亮度温度、海冰浓度和海冰积雪深度三级网格产品(AE_SI12)数据

AMSR-E/Aqua Daily L3 12.5 km Brightness Temperature, Sea Ice Concentration, & Snow Depth Polar Grids V003 三级网格产品&#xff08;AE_SI12&#xff09;包括 18.7 至 89.0 千兆赫的亮度温度、海冰浓度和海冰积雪深度。 简介 美国国家航空航天局地球观测系统 Aqu…

数组实现循环队列

1、分析 循环队列最主要的特点为当前面的空间被pop后&#xff0c;后面的数据可以插入到前面空余的数据中去&#xff1b; 所以最难的部分为判断什么时候为空什么时候为满&#xff1a; a、空满问题 我们先来分析当数据满时&#xff0c;head和tail相等&#xff08;tail认为是指…

Android 按键消息流程源码分析

在Android系统中&#xff0c;键盘按键事件是由SystemServer服务来管理的&#xff1b;然后在以消息的形式分发给应用程序处理。产生键盘按键事件则是有Linux kernel的相关驱动来实现。键盘消息有别于其他类型的消息&#xff1b;需要从Linux kernel drivers产生由上层APP来处理。…

在做题中学习(57):寻找数组的中心下标

724. 寻找数组的中心下标 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;前缀和后缀和 思路&#xff1a;要看一个数是不是中心下标&#xff0c;就看他前面数的和 与 后面数的和 相不相等。 1.i前面数的和&#xff0c;是[0,i-1] 的前缀和&#xff0c;i后面数的和&am…

综合性练习(验证码案例)

目录 一、需求 二、准备工作 三、约定前后端交互接口 1、需求分析 2、接口定义 四、Hutool工具介绍 1、引入依赖 2、测试使用Hutool生成验证码 五、实现服务器端代码 代码解读&#xff1a; 六、调整前端页面代码 七、运行测试 随着安全性的要求越来越高&#xff0c…

软件体系结构论述

一、软件危机 1.软件成本日益增长 2.开发进度难以控制 3.软件质量差 4.软件维护困难 软件危机的原因 1.用户需求不明确 2.缺少正确的理论 3.软件规模大 4.软件复杂度高 如何克服软件危机 用工程&#xff0c;科学&#xff0c;数学的原则和方法…

Linux 第二十八章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

欢乐钓鱼大师攻略,怎么获取道具?

在《欢乐钓鱼大师》的游戏世界中&#xff0c;道具是提升钓鱼体验、解锁新功能以及完成挑战的关键。通过多种方式获取道具&#xff0c;能够帮助玩家更好地探索游戏世界、挑战自我&#xff0c;以及与其他玩家展开竞争。以下是关于如何获取道具的详细攻略&#xff0c;让你能够在游…

proteus示波器不弹出来

运行后示波器没有弹出来 点击调试&#xff08;Debug&#xff09;在点击Digital Oscilloscope 完成

Flutter-加载中动画

效果 考察内容 AnimationControllerTweenAnimatedBuilderTransformMatrix4 实现 ///源码&#xff1a;https://github.com/yixiaolunhui/flutter_xy class LoadingView extends StatefulWidget {const LoadingView({Key? key}) : super(key: key);overrideState<LoadingV…