簡體   English   中英

python的加/減運算符±

[英]plus/minus operator for python ±

我正在尋找一種在 python 2 或 3 中進行加/減運算的方法。我不知道命令或運算符,也找不到執行此操作的命令或運算符。

我錯過了什么嗎?

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

print(u"\u00B1")

另一種可能性:不確定性是一個用於進行容錯計算的模塊,即

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

如果您碰巧使用 matplotlib,您可以打印類似於使用 Latex 的數學表達式。 對於 +/- 符號,您將使用:

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

其中 r 將字符串轉換為原始格式,而 $-signs 圍繞字符串中的數學方程部分。 這部分中的任何單詞都將使用不同的字體,並且除非用正確的代碼明確指出,否則它們之間不會有空格。 這可以在matplotlib 文檔的相關頁面上找到。

對不起,如果這太小眾了,但我偶然發現了這個問題,試圖找到這個答案。

而不是像這樣計算表達式

s1 = sqrt((125 + 10 * sqrt(19)) / 366)
s2 = sqrt((125 - 10 * sqrt(19)) / 366)

你可以用

import numpy as np

pm = np.array([+1, -1])
s1, s2 = sqrt((125 + pm * 10 * sqrt(19)) / 366)

我想你想要這樣的等式;

在此處輸入圖片說明

好吧,除非您不使用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)

你可以用

r = 10.0*sqrt(19)
s1, s2 = (sqrt((125.0 + i) / 366.0) for i in (r, -r))

這是基於Nico回答,但使用生成器表達式而不是 NumPy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM