前缀计算器

该博客介绍了一个用于计算前缀表达式结果的Python程序。程序通过递归方式解析输入的前缀表达式字符串,支持加、减、乘、除和取余操作。示例中展示了对不同前缀表达式的计算,如'/+*-17.38.9-3.94.718-3*2.37',并输出了计算结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入前缀表达式字符串 输出前缀表达式的计算结果(递归)
如:

+ 3 6 ==>  9.0
* + 3 6 + 5 18 ==>  207.0
/ + * - 17.3 8.9 - 3.9 4.7 18 - 3 * 2.3 7 ==> -0.86
def is_float(s):
    try:
        n = float(s)
        return True
    except ValueError:
        return False


def apply(operator, operand1, operand2):
    if operator == '+':
        return operand1 + operand2
    elif operator == '-':
        return operand1 - operand2
    elif operator == '*':
        return operand1 * operand2
    elif operator == '/':
        return operand1 / operand2
    elif operator == '%':
        return operand1 % operand2
    else:
        raise ValueError("bad operator :" + operator)


def evaluate(token):
    first = token.pop(0)
    if is_float(first):
        return float(first)
    else:
        operand1 = evaluate(token)
        operand2 = evaluate(token)
        return apply(first, operand1, operand2)


def main():
    expr = input("Please input a Qianzhui string:")

    while expr != '':
        token = expr.split()
        value = evaluate(token)
        print("value = ", round(value, 2))
        expr = input("Please input a Qianzhui string:")
    print("Exiting.")


main()

result:

Please input a Prefix expression string:/ + * - 17.3 8.9 - 3.9 4.7 18 - 3 * 2.3 7
value =  -0.86
Please input a Prefix expression string: + 3 6
value =  9.0
Please input a Prefix expression string: * + 2 3 + 5 18
value =  115.0
Please input a Prefix expression string:
Exiting.

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值