我想为计算器实现一个 dms() 函数,类似于 Windows 计算器。为了计算结果,我在最终公式所在行使用 sympy.N() 方法。我想看到这样的代码:
from sympy import N
def do_smth(x):
return x+1
result = N('do_smth((8*7)-3)')
我应该如何实施这个?请求:如果你知道更好的使用Sympy库的方法,不要在评论中写下我不知道Sympy之类的。建议您的选择。
我想为计算器实现一个 dms() 函数,类似于 Windows 计算器。为了计算结果,我在最终公式所在行使用 sympy.N() 方法。我想看到这样的代码:
from sympy import N
def do_smth(x):
return x+1
result = N('do_smth((8*7)-3)')
我应该如何实施这个?请求:如果你知道更好的使用Sympy库的方法,不要在评论中写下我不知道Sympy之类的。建议您的选择。
下面的示例定义了 和 函数
inc,并scale展示了如何让 SymPy 在计算表达式时使用它们。N您不能使用该函数,但它通过调用sympify解析字符串并evalf计算它来完成其工作。 B采用带有字符字典的sympify可选参数。locals在一行中,defs = ...它是由函数元组构造的。您可以以不同的方式执行此操作,只要结果是将名称映射到函数的字典即可。如果需要,您还可以向其中添加常量。更重要的是,如果您的计算器允许用户定义新变量,那么将它们也放入此字典中是有意义的。该脚本如何工作的说明:
导入模块:
N 用于对表达式进行数值计算。
函数用于创建自定义函数。
符号用于创建符号变量。
定义自定义函数:
do_smth 类继承自 Function,允许其在 SymPy 中用作符号函数。
eval 方法确定如何评估函数。在本例中,它只是将参数 x 加 1。
创建符号变量:
变量 x 创建为可在表达式中使用的符号变量。
计算函数的值:
表达式 (8*7)-3 被传递给 do_smth 函数,该函数将其值加 1。
N函数用于对结果进行数值计算。