如何将多个字符串运算符转换为数字?
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
我一直在尝试使用 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