首页 > 解决方案 > AttributeError:“str”对象没有属性“subs”

问题描述

我正在做一个定义,这将帮助我替换多项式的变量,但我得到了这个错误

from sympy import *

x = Symbol('x')
def velocidad_media(t0,t1,poli):
    D1=poli.subs(x,t0)
    D0=poli.subs(x,t1)
    D3=D1-D0
    T= t1-t0
    Re=D3/T
    print("la velocidad media es",Re,"m/s")

pol=input("ingrese la funcion del lanzamiento: ")
a= int(input("ingrese el tiempo inicial en segundos: "))
b=int(input("ingrese el tiempo final en segundos: "))
punt=int(input("ingrese el punto en donde quiere hallar la velocidad instantanea: "))velocidad_media(a,b,pol)`

错误信息 :

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

标签: python-3.x

解决方案


input返回一个str类型,但您将其视为一个 sympy 表达式。
您可以pol使用函数将字符串解析为 sympy 表达式parse_expr
例如

from sympy import *
from sympy.parsing.sympy_parser import parse_expr

x = Symbol('x')
pol = parse_expr('x**2 + x + 1')
pol.subs(x,1)

推荐阅读