如何将多个字符串运算符转换为数字?

How to convert multiple string operators into numbers?

我一直在尝试使用 tkinter 在 Python 中创建一个计算器,但没有成功。我正在尝试使用运算符库和 eval 函数。

import operator

ops = {
    '+' : operator.add,
    '*' : operator.mul,
}


def eval_binary_expr(op1, oper, op2, get_operator_fn=ops.get):
    op1, op2 = int(op1), int(op2)
    return get_operator_fn(oper)(op1, op2)


print(eval_binary_expr(*("1 + 3 * 4".split())))

请帮助我。它对我不起作用。我是初学者,所以我不擅长这个。抱歉,如果您认为这个问题很愚蠢。

想一想:列表中有多少项来自 "1 + 3 * 4".split()?它们如何与eval_binary_expr的形式参数对齐?

如果您想要通常的运算符优先级,解决此类问题的一种常见方法是 shunting-yard algorithm