与 sympy/pyqt python 的集成和差异化
integration and differentiation with sympy/pyqt python
我正在创建一个系统,使用 python 3. 当我显示问题时,它们的形式如下:
-25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x
我怎样才能把它改成这样的形式:
-25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x
我也想要它,这样当用户输入等效答案时它仍然可以被识别
对于简单的显示器更换,您可以使用:
def format_math(string):
return (string.replace("**", "^")).replace("*", "")
然后您可以将其与用户输入进行比较,以比较他们输入的答案与您的答案。
x = format_math("-25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x")
# -25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x
user_input = format_math(input("Enter your answer: "))
# If the user enters # -25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x or
# -25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x the program will
# recognize both as correct
if x == user_input:
return True
如果打算使用 sympy
,那么以下方法将起作用:
import sympy as sp
x = sp.symbols('x')
sp.init_printing()
y = -25*x**(sp.Integer(3)/sp.Integer(5)
)/sp.Integer(3) + 6*x**(sp.Integer(4)/sp.Integer(3)
) - sp.Integer(5)*x**sp.Integer(6)/sp.Integer(3) + x**sp.Integer(
2)/sp.Integer(2) - 4*x
y
然后可以使用 sympy
的工具简化和比较表达式。如果最好不要显式使用 sp.Integer()
来防止 Python 进行除法,则可以在使用 sp.sympify()
将字符串转换为SymPy 表达式。
我正在创建一个系统,使用 python 3. 当我显示问题时,它们的形式如下:
-25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x
我怎样才能把它改成这样的形式:
-25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x
我也想要它,这样当用户输入等效答案时它仍然可以被识别
对于简单的显示器更换,您可以使用:
def format_math(string):
return (string.replace("**", "^")).replace("*", "")
然后您可以将其与用户输入进行比较,以比较他们输入的答案与您的答案。
x = format_math("-25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x")
# -25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x
user_input = format_math(input("Enter your answer: "))
# If the user enters # -25x^(3/5)/3 + 6x^(4/3) - 5x^6/3 + x^2/2 - 4x or
# -25*x**(3/5)/3 + 6*x**(4/3) - 5*x**6/3 + x**2/2 - 4*x the program will
# recognize both as correct
if x == user_input:
return True
如果打算使用 sympy
,那么以下方法将起作用:
import sympy as sp
x = sp.symbols('x')
sp.init_printing()
y = -25*x**(sp.Integer(3)/sp.Integer(5)
)/sp.Integer(3) + 6*x**(sp.Integer(4)/sp.Integer(3)
) - sp.Integer(5)*x**sp.Integer(6)/sp.Integer(3) + x**sp.Integer(
2)/sp.Integer(2) - 4*x
y
然后可以使用 sympy
的工具简化和比较表达式。如果最好不要显式使用 sp.Integer()
来防止 Python 进行除法,则可以在使用 sp.sympify()
将字符串转换为SymPy 表达式。