python - 如何摆脱 sympy 替代错误消息?

标签 python sympy

我有一个烦人的错误消息,我无法弄清楚。 以下代码(Python 3 中)给出了正确的结果:

from sympy import *
x, y, z, t = symbols('x y z t') 
expr = cos(x) + 1
print(expr.subs(x, y))

结果是:

cos(y) + 1

但是,当 expr 被修改或不同时,

from sympy import *
x, y, z, t = symbols('x y z t') 
expr = 1
print(expr.subs(x, y))

输出是错误消息,

AttributeError: 'int' object has no attribute 'subs'

我该如何解决这个问题?必要时我需要 subs 来处理符号表达式和数字(假设符号表达式被修改为结果是数字)。 问候。

最佳答案

第二个示例中的 1 不是 SymPy 数字,只是一个常规的 Python 整数。

您可以使用S()(或sympify())函数将其转换为 SymPy 数字。

官方文档有一个Gotchas entry描述了您的问题并给出了更多示例,以及 description sympify 可以做什么。

关于python - 如何摆脱 sympy 替代错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38083933/

相关文章:

python - Robotframework "Choose file"导致 AttributeError : module 'base64' has no attribute 'encodestring' in docker

Python,使用数据框如何拆分列中字符串的值,然后使用拆分后的值添加新列

python - 如何使用 SymPy 替换模式

python - IJulia 与 SymPy 不工作

python - 表示代数整数环

python - 准确找到最小的特征值

python - 具有复杂项目结构的Docker设置

python - 如何在python中使用子类的方法调用第二个父类的方法?

python - 使用 Twython 获取推文 ID?

python - SymPy 秩与 NumPy 矩阵秩不同