plus/minus operator for python ±

时光怂恿深爱的人放手 提交于 2019-12-12 07:59:37

问题


I am looking for a way to do a plus/minus operation in python 2 or 3. I do not know the command or operator, and I cannot find a command or operator to do this.

Am I missing something?


回答1:


Another possibility: uncertainties is a module for doing calculations with error tolerances, ie

(2.1 +/- 0.05) + (0.6 +/- 0.05)    # => (2.7 +/- 0.1)

which would be written as

from uncertainties import ufloat

ufloat(2.1, 0.05) + ufloat(0.6, 0.05)

Edit: I was getting some odd results, and after a bit more playing with this I figured out why: the specified error is not a tolerance (hard additive limits as in engineering blueprints) but a standard-deviation value - which is why the above calculation results in

ufloat(2.7, 0.07071)    # not 0.1 as I expected!



回答2:


If you are looking to print the ± symbol, just use:

print(u"\u00B1")



回答3:


If you happen to be using matplotlib, you can print mathematical expressions similar as one would with Latex. For the +/- symbol, you would use:

print( r"value $\pm$ error" )

Where the r converts the string to a raw format and the $-signs are around the part of the string that is a mathematical equation. Any words that are in this part will be in a different font and will have no whitespace between them unless explicitly noted with the correct code. This can be found on the relavent page of the matplotlib documentation.

Sorry if this is too niche, but I stumbeled across this question trying to find this very answer.




回答4:


I think you want that for an equation like this;

Well there is no operator for that unless you don't use SymPy, only you can do is make an if statement and find each multiplier.




回答5:


Instead of computing expressions like

s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)

you could use

pm = numpy.array([+1, -1])
s1, s2 = sqrt((125.0 + pm * 10.0*sqrt(19)) / 366.0)



回答6:


There is no such object in SymPy yet (as you saw, there is an issue suggesting one https://github.com/sympy/sympy/issues/5305). It's not hard to emulate, though. Just create a Symbol, and swap it out with +1 and -1 separately at the end. Like

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)

You could also just keep track of two equations from the start.



来源:https://stackoverflow.com/questions/27872250/plus-minus-operator-for-python-%c2%b1

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!