从字符串到 sympy 表达式
From string to sympy expression
最近我在开发一个 Web 应用程序,使用 Flask 和 sympy 库。用户在文本区域中输入他的等式,Flask 将其作为字符串获取。我希望有可能通过使用 sympy 函数 solve() 来计算这个方程的结果。但是为此我必须将这个字符串转换为一个 sympy 表达式。我该怎么做?
from flask import Flask,request,render_template,flash
from sympy import *
from sympy.parsing.sympy_parser import *
x = symbols('x')
app = Flask(__name__)
app.secret_key = 'mysecretkey'
def calculate_():
first_eq = request.form['first_eq']
first_eq2= parse_expr(first_eq)
result = solve(first_eq2)
return result
@app.route("/",methods=['GET', 'POST'])
def myGet():
return render_template("my-form.html")
@app.route("/myPost/",methods=['GET', 'POST'])
def myPost():
answer = request.form['answer']
result_of_answer=solve(Eq(answer),x)
result = calculate_()
try:
if result == result_of_answer:
flash("you got it!")
else:
flash("no, it's wrong")
return render_template("my-form.html")
except:
flash("sorry, wrong type. Try again!")
return render_template("my-form.html")
if __name__ == '__main__':
app.run()
您要找的函数是sympify
。 http://docs.sympy.org/latest/modules/core.html#sympy.core.sympify.sympify
sympify()
使用 eval()
这很危险。请改用 sympy.parsing.sympy_parser.parse_expr()
。
最近我在开发一个 Web 应用程序,使用 Flask 和 sympy 库。用户在文本区域中输入他的等式,Flask 将其作为字符串获取。我希望有可能通过使用 sympy 函数 solve() 来计算这个方程的结果。但是为此我必须将这个字符串转换为一个 sympy 表达式。我该怎么做?
from flask import Flask,request,render_template,flash
from sympy import *
from sympy.parsing.sympy_parser import *
x = symbols('x')
app = Flask(__name__)
app.secret_key = 'mysecretkey'
def calculate_():
first_eq = request.form['first_eq']
first_eq2= parse_expr(first_eq)
result = solve(first_eq2)
return result
@app.route("/",methods=['GET', 'POST'])
def myGet():
return render_template("my-form.html")
@app.route("/myPost/",methods=['GET', 'POST'])
def myPost():
answer = request.form['answer']
result_of_answer=solve(Eq(answer),x)
result = calculate_()
try:
if result == result_of_answer:
flash("you got it!")
else:
flash("no, it's wrong")
return render_template("my-form.html")
except:
flash("sorry, wrong type. Try again!")
return render_template("my-form.html")
if __name__ == '__main__':
app.run()
您要找的函数是sympify
。 http://docs.sympy.org/latest/modules/core.html#sympy.core.sympify.sympify
sympify()
使用 eval()
这很危险。请改用 sympy.parsing.sympy_parser.parse_expr()
。