python - 将字符串转换为方程并求解

标签 python string sympy

我需要做的就是将字符串转换为简单的对象,例如: “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/

相关文章:

python - scrapy中如何处理302重定向

PHP 和 MySQLi 将查询结果转换为字符串时出错

python - 检查 Sympy Expression 是否为 Nan?

python - 如何使用 python Flask 防止长时间运行的工作负载出现 230 秒的 azure 网关超时

python - 如何阻止我的 Python if 语句与我的 else 语句一起打印?

Java 拆分路径..?

java - 从字符串中提取字符串

SymPy动态符号,如何设置二阶导数消失?

python - 为什么matlab中的solve()函数可以求解这个方程,而sympy中的nsolve()函数需要猜测?

python - 临时更改标签样式(模仿按钮)