python 编程实现一元一次方程的求解 (输入的方程式中不含括号及分号) 如: 输入: 3x+6=15 输入: -3+3x=13-X 输出: 3.00 输出: 4.00 输入: 16-12a=128+24a-24 输出: -2.44 输入:x+8=X-8 输出: 方程不成立,或x可等于任意值 输入: X-12=-12+x输出: 方程不成立,或x可等于任意值 请提交代码及测试运算结果。(提示:要对输入的方程字符串分割为多个列表项元素,部分字符要考虑替换)
时间: 2024-03-25 16:37:53 浏览: 72
下面是 Python 代码实现一元一次方程的求解:
```python
def solve_equation(equation):
equation = equation.replace(" ", "") # 去除空格
# 判断方程是否合法
if ("=" not in equation) or (equation.count("=") > 1) or (equation.count("x") > 1):
return "方程不合法"
if "x" not in equation:
return "方程不是一元一次方程"
# 分离出等式两边
left, right = equation.split("=")
# 将 x 移动到等式左边
left = left.replace("x", "") + "-(" + right.replace("x", "") + ")"
# 计算结果
try:
result = eval(left) / eval("1.0")
except ZeroDivisionError:
return "方程不成立,或x可等于任意值"
return "{:.2f}".format(result)
# 测试
print(solve_equation("3x+6=15")) # 输出: 3.00
print(solve_equation("-3+3x=13-x")) # 输出: 4.00
print(solve_equation("16-12a=128+24a-24")) # 输出: -2.44
print(solve_equation("x+8=X-8")) # 输出: 方程不成立,或x可等于任意值
print(solve_equation("X-12=-12+x")) # 输出: 方程不成立,或x可等于任意值
```
代码思路:
1. 去除输入字符串中的空格,方便后面处理;
2. 判断方程是否合法,如果不合法直接返回错误信息;
3. 判断方程是否是一元一次方程,如果不是直接返回错误信息;
4. 将等式右边的 x 移动到等式左边,得到一个简化后的一元一次方程;
5. 使用 eval 函数计算方程的结果,并将结果保留两位小数返回。如果计算过程中出现除 0 错误,则说明方程不成立,或者 x 可等于任意值,直接返回错误信息。
阅读全文