Arithmetic Problems

题意

图片说明

给你一个式子,减号的意思是乘号,除号的意思是加号,加号的意思是除号,乘号的意思是减号。

要求计算这个式子。

思路

使用eval函数直接计算。

但是在此之前,要完成符号的转换:要注意,不能直接把减号变成乘号,否则会发生替换的覆盖,应该先转换成中间变量,再逐一转换成目标符号。

另外由于表达式过长,必须提高默认的递归栈深

solution

import sys
sys.setrecursionlimit(600000)
s=input()
s=s.replace(' ','')
s=s.replace('-','mul')
s=s.replace('/','add')
s=s.replace('+','div')
s=s.replace('*','sub')
s=s.replace('mul','*')
s=s.replace('add','+')
s=s.replace('div','/')
s=s.replace('sub','-')
try:
    ans=float(eval(s))
    print('%.2f'%ans)
except:   
    print('Cannot be divided by 0')