我想制作一个采用用户等式的python程序,例如:“168/24+8=11*3-16
”,并尝试通过从用户输入中删除任何2个字符来使等式两边相等。这是我到目前为止:如何使用字符串来解决使用python的数学公式?
def compute(side):
val = int(side[0])
x= val
y=0
z=None
for i in range(1, len(side)-1):
if side[i].isdigit():
x= (x*10)+ int(side[i])
if x == side[i].isdigit():
x= int(side[i])
else:
op = side[i]
if op=="+":
val += x
elif op == "-":
val -= x
elif op == "*":
val *= x
else:
val /= x
return print(val)
我编辑了我的计算功能。
def evaluate(e):
side1 = ""
side2 = ""
equalsign = e.index("=")
side1= e[:equalsign - 1]
side2= e[:equalsign + 1]
if compute (side1) == compute(side2):
return True
else:
return False
def solve():
# use a for loop with in a for loop to compare all possible pairs
pass
def main():
e= input("Enter an equation: ")
evaluate(e)
main()
对于实际solve
功能我想测试的所有可能对的方程的每一侧,并与每对移除的校验,如果方程等于另一侧。我正在考虑使用for
回路说:
for i in side1:
j= [:x]+[x+1:y]+[y+1:]
if compute(j)==compute(side2):
val= compute(j)
return val
我该如何去做这件事?我对如何真正处理这个程序感到困惑。
我可以有一些组输入和预期产出的呢? – 2014-09-27 17:04:27
可以说用户输入等式168/24 + 8 = 11 * 3-16程序检查一边是否等于另一边,15 = 17,因为该程序从用户输入中删除2个字符,所以两边都是等于,18/2 + 8 = 11 * 3-16,因为6和4已经被移除,所以现在的等式等于17 = 17 – Cos 2014-09-27 17:25:34
唷!并不像我想的那么简单! – 2014-09-27 17:32:28