我今天突发奇想,决定用python写一个方程计算器(重点是能自然的输入表达式求解)
算法是十分钟想的,代码是半小时赶完的,文章是五分钟敲完的。。。
没写注释(太懒了),而且数字和x之间不能省略乘号否则会报错
总而言之,这是一个很简陋的程序,后面会不断改进
代码:
import re
print("--------一元一次方程计算器--------")
print("注意:不要省略乘号,如5x应写为5*x")
a = input("输入:")
i = 0
for i in range(len(a)):
if a[i] == "=":
break
x = 1
newL = re.sub('x', str(x), a[0:i])
newR = re.sub('x', str(x), a[i + 1:])
r1L = eval(newL)
r1R = eval(newR)
x = 2
newL = re.sub('x', str(x), a[0:i])
newR = re.sub('x', str(x), a[i + 1:])
r2L = eval(newL)
r2R = eval(newR)
delta = r2L - r2R - r1L + r1R
k = delta
correct = abs(r2L - r2R) / k
if abs(r2L - r2R) > abs(r1L - r1R):
x -= correct
elif abs(r2L - r2R) < abs(r1L - r1R):
x += correct
elif abs(r2L - r2R) == abs(r1L - r1R):
x = 0
print("x=", x)
运行效果图:
随手记一下,如果有需要的自己改一改(能看懂就很好了)



