← 返回题库
中级

四则运算

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve(____):
    def precedence(____):
        if op in '____':
            return ____
        if op in '____':
            return ____
        return ____
    def apply_op(____):
        if op == '____':
            return a + b
        if op == '____':
            return a - b
        if op == '____':
            return a * b
        if op == '____':
            return a / b
    values = []
    ops = []
    i = ____
    while i < len(____):
        if expr[i] == '____':
            i += ____
            continue
        if expr[i].isdigit():
            val = ____
            while i < len(____) and expr[i].isdigit():
                val = val * ____ + int(____)
                i += ____
            values.append(____)
        elif expr[i] == '____':
            ops.append(____)
            i += ____
        elif expr[i] == '____':
            while ops and ops[-____] != '____':
                val2 = values.pop()
                val1 = values.pop()
                op = ops.pop()
                values.append(apply_op(____))
            ops.pop()
            i += ____
        else:
            while ops and precedence(____) >= precedence(____):
                val2 = values.pop()
                val1 = values.pop()
                op = ops.pop()
                values.append(apply_op(____))
            ops.append(____)
            i += ____
    while ops:
        val2 = values.pop()
        val1 = values.pop()
        op = ops.pop()
        values.append(apply_op(____))
    print(int(____))

示例

输入
3+5*2
期望输出
13
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码