我一直在使用 Sympy 来研究电力系统的方程,并且已经进行了很多处理,以便方程看起来不错且体面:所有值都包含遵循它们的单位,甚至通过方程组合也是如此。
我认为这非常重要,因为目标是我正在编写的用于计算我的值的文档是我将呈现的最终文档(我正在使用 Jupyter 笔记本并将整个内容 PDF 格式)。
现在我的问题来了:不知何故, sympy 认为 % 本身不是一个单位(确实如此,它没有维度)并且显示它根本没有意义。
它似乎甚至解析我自己声明的单位以删除可能出现的任何百分比字符......
只要我同意 % 没有维度,这个角色仍然存在是有原因的——如果它那么无用,它从一开始就不会存在。人们喜欢在末尾加上一个漂亮的 % 来读取百分比,因为它已经表明结果已乘以 100 倍。它也使结果更具可读性。
在代码中:
# imports
import sympy as sp
from sympy import init_printing
init_printing(use_latex=True)
init_printing(use_latex='mathjax')
import sympy.physics.units as u
from IPython.display import display
#define unit
percent = u.Unit('ab%c', 'ab%c')*100 # a,b and c are only there for debug. Only % is needed
#define dummy equation
Error_= sp.symbols('Error')
total_error = 1 # error is not yet in %. 1 means 100%
Eq = sp.Eq(Error_, total_error*percent)
display(Eq)
结果:错误=100ab
为什么 % 之后的所有内容都被清楚地删除了?我什至小心翼翼地不导入全局命名空间中的所有单元,因此如果要检测到 % ,是否不需要 u.% ?
PS: I have a long history of 3 days (total) working with Python. I'm usually more of a C guy. Hope I've not missed a stupid error.
这对我有用:
percent = u.Unit('percent', r'\%') * 100
最可能%
必须转义,因为在 LaTeX 中也必须转义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)