描述
自动判断一个简单的数学等式是否成立。这里的数学等式是两个数的四则运算(加,减,乘,除)。参与运算的数是浮点数,结果保留两位小数。
输入
一个等式。数字和运算符之间没有空格。等式左边的两个数是非负数,右边的结果仅仅保留两位小数。
输出
一个字符串,true 或者 false
s=input()
its=s.split('=')
print(eval(its[0])==eval(its[1]))
import re
cal = input()
value = re.search("(\d*.?\d*)([+,-,*,/])(\d*.?\d*)=(\d*.?\d*)",cal)
v1=float(value.group(1)) ## 第一个数字
v2= value.group(2) ## 运算符号
v3=float(value.group(3)) ## 第二个数字
v4="%.2f"%float(value.group(4)) ## 运算结果
if((v2=="+" and v4=='%.2f'%(v1+v3)) or (v2=="-" and v4=='%.2f'%(v1-v3)) or (v2=="*" and v4=='%.2f'%(v1*v3)) or (v2=="/" and v4== '%.2f'%(v1/v3)) ):
print("{} true".format(cal))
else:
print("{} false".format(cal))
def func(a):
m=a.replace("+"," ")
m=m.replace("-"," ")
m = m.replace("", " ")
m = m.replace("/", " ")
m=m.replace("="," ")
x,y,z=m.split()
x=float(x)
y=float(y)
z=float(z)
if "+"in a:
b=x+y
elif "-" in a:
b=x--y
elif "" in a:
b=x*y
else :
b=x/y
b=round(b,2)
if b==z:
return("true")
else:
return("false")
a=input()
print(func(a))
我自己这样写的,据说问题是要区分负数和减号,想知道这个该怎么区分?
def f(a):
b=a.split("=")
s1=eval(b[0])
s1="{:.2f}".format(s1)
s2=b[1]
if s1==s2:
return "true"
else:
return "false"
n=input()
m=f(n)
print(m)