首页 > 解决方案 > 为什么我不能在 sympy 中使用 subs?// 'list' 对象没有属性 'subs'

问题描述

我想将 x 替换为用户用户插入的 var

import numpy as np
from sympy import *

x = Symbol('x')

xi =int(input("insert initial x: "))
funcion = input("Insert the function: ")

def fx(funcion,x):
    return solve(funcion,x, implicit=true))


despejada = fx(funcion,x)
print(despejada.subs({x:xi)

我插入:

10

x+10

我得到:

weass.py", line 13, in <module>
print(despejada.subs({x:xi})) AttributeError: 'list' object has no attribute 'subs'

为什么我不能在 sympy 中使用subs

标签: pythonmathsympy

解决方案


正如评论中提到的,solve 函数返回不同解决方案的列表(这里它包含 1 个元素)。您需要使用下标(带括号)来引用单个解决方案。

despejada[0].subs({x:xi})

作为一个额外的提示:除非你从你自己的包中导入你所知道的一切,否则避免使用它,from sympy import *因为它会使你的命名空间变得混乱。更喜欢使用类似import sympy as spnumpy 的东西。它可以为您省去一些麻烦。


推荐阅读