我需要做的就是将字符串转换为简单的对象,例如:
“1/4*x+ 1”到 1/4*x+ 1
我正在从图像中提取文本并计算图像中的表达。
如果我有:
valid_text = 1/4*x+ 1= 1/6*x+ 1/2
来自图像,我正在做:
if 'x' in valid_text and '=' in valid_text:
lhs = valid_text.rsplit('=', 1)[0]
lhs = eval(lhs)
rhs = valid_text.rsplit('=', 1)[1]
rhs = eval(rhs)
solution = solve(Eq(lhs, rhs), x)
当我将字符串传递给它时,我使用eval()
函数返回一个对象。但是 eval() 函数有时会给出
rhs = eval(rhs)
File "<string>", line 1, in <module>
TypeError: 'int' object is not callable` **AND other inappropriate outputs.**
还有其他方法可以从 String 中获取对象吗?
最佳答案
这是一个完整的解决方案
from sympy import solve
from sympy.abc import x, y, z, a, b
from sympy.parsing.sympy_parser import parse_expr
def solve_meThis(string_):
try:
lhs = parse_expr(string_.split("=")[0])
rhs = parse_expr(string_.split("=")[1])
solution = solve(lhs-rhs)
return solution
except:
print "invalid equation"
valid_text = "1/4*x+ 1 = 1/6*x+ 1/2"
solve_meThis(valid_text)
>> -6
关于python - 将字符串转换为方程并求解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30775453/