【问题标题】:How to convert multiple string operators into numbers?如何将多个字符串运算符转换为数字?
【发布时间】:2021-07-14 10:18:39
【问题描述】:

我一直在尝试使用 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())))

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

【问题讨论】:

  • 相反,只需执行print(eval("1 + 3 * 4"))

标签: python printing return operators eval


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多