如何在 python 中用 eval() 解释 sin(x)
How to interpret sin(x) with eval() in python
我试图让用户键入 sin(x) - y
以使用 SymPy 建立方程式,但是,使用我当前的代码,当您输入此代码时,它 returns:
TypeError: can't convert expression to float
我当前的代码是:
import numpy as np
import sympy as sp
import math
from math import sin, cos, tan
x, y = sp.symbols('x y')
literalEq = input("Enter equation")
eq = eval(literalEq)
我对使用 SymPy 还很陌生,你能帮帮我吗?
您似乎正试图在输入中直接输入 x
和 y
,这主要是算作表达式而不是其他任何东西。您需要输入 sin(3) - 5
这样的直接值,这将 return -4.858879991940133
.
或者您可以使用 sympify
函数简化方程式,以便使用 evalf
函数对其进行运算。
import sympy
from sympy import *
init_printing(use_unicode=True)
x, y = sympy.symbols('x y')
literalEq = str(input("Enter equation "))
literalEq = sympify(literalEq)
literalEq = literalEq.evalf()
pprint(literalEq) #For pretty printing
或者从 sympy 导入 sin
(and/or 你需要的三角函数) 也可以。
import sympy
from sympy import * #or from sympy import sin
init_printing(use_unicode=True)
x, y = sympy.symbols('x y')
literalEq = input("Enter equation ")
eq = eval(literalEq)
pprint(eq)
我试图让用户键入 sin(x) - y
以使用 SymPy 建立方程式,但是,使用我当前的代码,当您输入此代码时,它 returns:
TypeError: can't convert expression to float
我当前的代码是:
import numpy as np
import sympy as sp
import math
from math import sin, cos, tan
x, y = sp.symbols('x y')
literalEq = input("Enter equation")
eq = eval(literalEq)
我对使用 SymPy 还很陌生,你能帮帮我吗?
您似乎正试图在输入中直接输入 x
和 y
,这主要是算作表达式而不是其他任何东西。您需要输入 sin(3) - 5
这样的直接值,这将 return -4.858879991940133
.
或者您可以使用 sympify
函数简化方程式,以便使用 evalf
函数对其进行运算。
import sympy
from sympy import *
init_printing(use_unicode=True)
x, y = sympy.symbols('x y')
literalEq = str(input("Enter equation "))
literalEq = sympify(literalEq)
literalEq = literalEq.evalf()
pprint(literalEq) #For pretty printing
或者从 sympy 导入 sin
(and/or 你需要的三角函数) 也可以。
import sympy
from sympy import * #or from sympy import sin
init_printing(use_unicode=True)
x, y = sympy.symbols('x y')
literalEq = input("Enter equation ")
eq = eval(literalEq)
pprint(eq)