оператор плюс / минус для python ±

Я ищу способ сделать операцию плюс / минус в python 2 или 3. Я не знаю команды или оператора, и я не могу найти команду или оператор для этого.

Я что-то пропустила?

5 ответов


другая возможность: неопределенность это модуль для выполнения расчетов с допусками ошибок, т. е.

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

Edit: Я получал некоторые нечетные результаты, и после немного больше игры с этим я понял, почему: указанная ошибка не является допуском (жесткие аддитивные пределы, как в инженерных чертежах), но значение стандартного отклонения - вот почему вышеуказанные результаты расчета в

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

Если вы используете matplotlib, вы можете печатать математические выражения, похожие на Latex. Для символа +/- вы бы использовали:

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

где r преобразует строку в необработанный формат, а $ - знаки находятся вокруг части строки, которая является математическим уравнением. Любые слова, которые находятся в этой части, будут иметь другой шрифт и не будут иметь пробелов между ними, если явно не указано с правильным кодом. Это можно найти на отношение страница matplotlib документация.

Извините, если это слишком ниша, но я наткнулся на этот вопрос, пытаясь найти этот самый ответ.


Я думаю, что вы хотите этого для такого уравнения;

enter image description here

Ну, для этого нет оператора, если вы не используете SymPy, только вы можете сделать, это if заявление и найти каждый множитель.


в 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)

вы также можете просто отслеживать два уравнения с самого начала.


вместо вычисления выражений типа

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)