与运算符一起评估列表

Evaluating list with operators

import operator

ops = {
    '+' : operator.add,
    '-' : operator.sub,
    '*' : operator.mul,
    '/' : operator.truediv
}
n = input()
li = [n.split()]
li[0,2,4,6,8] = int(li[0,2,4,6,8])
li[1,3,5,7] = ops(li[1,3,5,7])
print(li)

我在上面使用了这段代码。我从 Turn string into operator 那里得到了帮助。所以我想做的就是举个例子:

1 * 3 / 2 * 5 + 1

并将其拆分为一个列表,然后将运算符转换为运算符,并将所有数字转换为整数。然后将其作为方程求解。

如果你想计算一个表达式,你可以使用 eval,它接受一个中缀表达式(以字符串的形式)并计算它(假设它是一个有效的表达式)

exp = input() # 4 + 3 * 2
answer = eval(exp) # 10