【问题标题】:Why I can't use subs with sympy? // 'list' object has no attribute 'subs'为什么我不能在 sympy 中使用 subs? // 'list' 对象没有属性 'subs'
【发布时间】:2021-07-28 21:24:10
【问题描述】:

我想将 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'

为什么我不能将 subs 与 sympy 一起使用?

【问题讨论】:

  • despejada 是一个列表,而不是一个同情的表达。阅读并从错误消息中学习!
  • 试试despejada[0].subs({x:xi})
  • Ty @OscarBenjamin 和 hpaulj 我希望有人把它写成答案,这样我就可以关闭它了。

标签: python math sympy


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多