按照运算符对等式两边进行分割,然后进行统一成Ax+b = Cx+d的形式
import sys
# 捕捉异常,如果有未知量则返回空值
def convert_to_int(a):
try:
result = int(a)
return result
except :
return None
def func(s :str):
#按照符号对式子分割成 Ax+B
A_li = [] # A的所有系数
B_li = [] # B的所有系数
# 首尾加上一个'+',用于终止条件判断
if s[0] not in ['-', '+']:
s = '+' + s + '+' #
else:
s = s + '+'
i = 1
while s:
if s == '+':
break
elif s[i] not in ['+', '-'] :
i += 1
else:
res = s[:i]
tag = convert_to_int(res.replace('+', ''))
if tag or tag == 0:
B_li.append(tag)
else:
tag = -1 if '-' in res else 1
if len(res) == 2:
A_li.append(tag)
else:
A_li.append(int(res[1:-1]) * tag)
s = s[i:]
i = 1
A = sum(A_li)
B = sum(B_li)
return A, B
while True:
try:
left, right = sys.stdin.readline().strip().split('=')
if not left:
break
A_L, B_L = func(left)
A_R, B_R = func(right)
if B_R == B_L:
res = 0
else:
res = (B_R - B_L) / (A_L - A_R)
char = ''
for x in (left+right):
if x.islower():
char = x
break
print(f"{char}={res:.3f}")
except:
break