在 SymPy 中定义保存数值的符号

Sot*_*aht 3 sympy python-3.x

我试图在 SymPy 中定义一个常量,其功能与 pi、e 和 i 等常量相同。当给出确切答案时,它们仍然是它们的符号,而不是评估它们的值。例如,如果我跑了

2*pi
Run Code Online (Sandbox Code Playgroud)

它会返回 2??。如果我想要一个大概的答案,我可以跑

N(2*pi)
Run Code Online (Sandbox Code Playgroud)

返回 6.28318530717959。

我想要的是定义一个常数,tau,其中

tau
Run Code Online (Sandbox Code Playgroud)

返回 ?, 而

N(tau)
Run Code Online (Sandbox Code Playgroud)

返回 6.28318530717959。

基本上我只是想定义一个新符号,?,它等于 2??。

Kra*_*nov 5

您需要以NumberSymbol相同的方式进行子类化Pi。只需复制粘贴源代码Pi并添加*2就足够了。请注意,这些对象是单例类而不是实例。

您还应该阅读 pi 宣言 ;)