python编程实现一元一次方程的求解(输入的方程式中不含括号及分号)。 如: 输入:3x+6=15 输出: 3.00 输入:-3+3x=13-x 输出: 4.00 输入:16-12a=128+24a-24 输出: -2.44 输入:x+8=x-8 输出:方程不成立,或x可等于任意值 输入:x-12=-12+x 输出:方程不成立,或x可等于任意值
时间: 2024-03-25 11:36:26 浏览: 80
好的,这是一个比较简单的问题,以下是Python代码实现一元一次方程的求解:
```python
def solve_equation(equation):
# 将等式分为左右两个部分
left, right = equation.split('=')
# 将左边的部分移到右边
# 将符号取反
right = str(eval(left + '-' + right))
# 将 x 移到左边
left = left.replace('x', '1*x') if 'x' not in left else left
left = left.replace('-x', '-1*x')
# 将常数项移到右边
left = left.replace('+', ' + ').replace('-', ' - ')
left = [term.strip() for term in left.split()]
x_coef = sum([eval(term.replace('x', '')) for term in left if 'x' in term])
const_coef = sum([eval(term) for term in left if 'x' not in term])
# 判断是否为无解或有无数解
if x_coef == 0 and const_coef != 0:
return '方程不成立,或x可等于任意值'
elif x_coef == 0 and const_coef == 0:
return '方程有无数解'
# 求解
x = round(-const_coef / x_coef, 2)
return '{:.2f}'.format(x)
# 测试
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可等于任意值
```
需要注意的是,代码中使用了 `eval()` 函数对表达式求值,虽然对于此题来说可以使用,但是在实际应用中,应避免使用 `eval()` 函数,以免代码被注入造成安全问题。
阅读全文