python的加减运算符±;

python的加减运算符±;,python,numpy,scipy,sympy,Python,Numpy,Scipy,Sympy,我正在寻找一种在Python2或Python3中执行加减操作的方法。我不知道命令或操作员,也找不到执行此操作的命令或操作员 我遗漏了什么吗?我想对于这样一个等式,你需要它 除非你不使用,否则没有运算符,你唯一能做的就是做一个if语句,然后找到每个乘数。另一种可能性:是一个用于计算误差容限的模块,即 (2.1 +/- 0.05) + (0.6 +/- 0.05) # => (2.7 +/- 0.1) 这将被写为 from uncertainties import ufloat u

我正在寻找一种在Python2或Python3中执行加减操作的方法。我不知道命令或操作员,也找不到执行此操作的命令或操作员


我遗漏了什么吗?

我想对于这样一个等式,你需要它

除非你不使用,否则没有运算符,你唯一能做的就是做一个
if
语句,然后找到每个乘数。

另一种可能性:是一个用于计算误差容限的模块,即

(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!

在Symphy中还没有这样的对象(正如您所看到的,有一个问题建议这样做)。不过,模仿并不难。只需创建一个符号,并在末尾分别用+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)

你也可以从一开始就跟踪两个方程

如果您碰巧使用matplotlib,则可以打印与Latex类似的数学表达式。对于+/-符号,您将使用:

print( r"value $\pm$ error" )
其中,r将字符串转换为原始格式,$符号位于字符串的数学方程部分周围。本部分中的任何单词都将使用不同的字体,除非使用正确的代码明确标注,否则它们之间不会有空格。这可以在的相关页面上找到


抱歉,如果这个问题太小了,我会无意中找到这个问题的答案。

而不是像这样计算表达式

s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)
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)
r = 10.0*sqrt(19)
s1, s2 = (sqrt((125.0 + i) / 366.0) for i in (r, -r))

如果要打印±符号,只需使用:

print(u"\u00B1")

而不是像这样计算表达式

s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)
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)
r = 10.0*sqrt(19)
s1, s2 = (sqrt((125.0 + i) / 366.0) for i in (r, -r))

这是基于的,但使用生成器表达式而不是NumPy

嗯,什么是加减运算?记住:在数学中,一个函数将一个值(或一组值)从其定义映射到恰好一个值……我想你可能需要对此表示同情。@MarcusMüller的意思是,当你做平方根时,它同时有一个负值和正值。@tox123事实并非如此。当你做一个平方根时,你只得到一个值。这就是函数“平方根”的定义。你想说的是“如果Q>0,x²=Q形式的问题在有理数中有两个解”。@tox123:我认为你需要sympy是对的。我刚发现这不是运算,我想,输出应该是
2.1+0.05=2.15/2.1-0.5=2.05和0.55/0.65
你是如何得到结果的?这是二进制+/-,但运算是寻找一元+/-。但无论如何还是要感谢这个简洁的建议。如果你只是想打印数值,我可以使用键盘快捷键
shift+alt
和键盘键
+
=
,使用mac笔记本电脑生成
±
。问题是如何使用+/-逻辑执行算术,不是如何打印符号。对于正在寻找如何打印pm符号的人来说,这仍然是一个有用的答案:)很好!我是基于此发布的,它使用生成器表达式而不是NumPy。