我正在寻找在python 2或3中执行加/减运算的方法。我不知道命令或运算符,我找不到命令或运算符来执行此操作。
我错过了什么吗?
答案 0 :(得分:11)
另一种可能性:uncertainties是用于进行具有误差容限的计算的模块,即
(2.1 +/- 0.05) + (0.6 +/- 0.05) # => (2.7 +/- 0.1)
将写为
from uncertainties import ufloat
ufloat(2.1, 0.05) + ufloat(0.6, 0.05)
编辑:我得到了一些奇怪的结果,经过多一点玩这个后我弄清楚了原因:指定的误差不是公差(工程蓝图中的硬附加限制)但是标准偏差值 - 这就是上述计算结果的原因
ufloat(2.7, 0.07071) # not 0.1 as I expected!
答案 1 :(得分:5)
如果你碰巧使用matplotlib,你可以打印类似于Latex的数学表达式。对于+/-符号,您可以使用:
print( r"value $\pm$ error" )
r将字符串转换为原始格式,而$ -signs位于字符串中是数学方程式的部分。除非使用正确的代码明确指出,否则此部分中的任何单词都将使用不同的字体,并且它们之间不会有空格。这可以在matplotlib documentation的相关页面上找到。
很抱歉,如果这个太小众了,但我在这个问题上试图找到这个答案。
答案 2 :(得分:2)
答案 3 :(得分:2)
如果要打印±符号,请使用:
print(u"\u00B1")
答案 4 :(得分:1)
SymPy中还没有这样的对象(如你所见,有一个问题暗示一个https://github.com/sympy/sympy/issues/5305)。但是,模仿并不难。只需创建一个符号,并在结尾分别用+1和-1交换它。像
pm = Symbol(u'±') # The u is not needed in Python 3. I used ± just for pretty printing purposes. It has no special meaning.
expr = 1 + pm*x # Or whatever
# Do some stuff
exprpos = expr.subs(pm, 1)
exprneg = expr.subs(pm, -1)
您也可以从一开始就跟踪两个方程式。
答案 5 :(得分:1)
而不是计算像
这样的表达式s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)
你可以使用
pm = numpy.array([+1, -1])
s1, s2 = sqrt((125.0 + pm * 10.0*sqrt(19)) / 366.0)
答案 6 :(得分:0)