我今天突发奇想,决定用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)
运行效果图:
随手记一下,如果有需要的自己改一改(能看懂就很好了)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)