栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

一个简单的Python一元一次方程计算器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一个简单的Python一元一次方程计算器

我今天突发奇想,决定用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)

运行效果图:

随手记一下,如果有需要的自己改一改(能看懂就很好了)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号