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') 
京公网安备 11010502036488号