我如何通过 python 求解线性方程的错误

How do i solve an error on linear equation by python

今天,我做了一个关于 python 求解简单方程的简单项目。 像这样

linear="30=10x-20"
#c=bx+a or a+bx=c
a=0
c=0
b=0 
split=linear.split("=")
if len(split[0])==1 or len(split[1])==1 :
 c=int(split[0]) if len(split[0])==1 else int(split[1])
if len(split[0])>1 or len(split[1])>1  :
 b=int(split[0][:linear.index("x")]) if len(split[0])>1 else int(split[1][:linear.index("x")])
 a=int(split[0][linear.index("x")+1:] if len(split[0])>1 elseint(split[1[linear.index("x")+1:]))

total=(c-a)/b
print(total)

因此,它首先将“=”之间的字符串分隔开。然后,它分析的部分 分离得到a、b、c的值。之后,我得到了错误。我该如何解决 ? 谢谢。

a=int(split[0][linear.index("x")+1:] if len(split[0])>1 else int(split[1][linear.index("x")+1:])) ValueError: invalid literal for int() with base 10: ''

if 和 else 语句令人困惑可能是因为您可能遇到此错误。如果你在 python.

中学习正则表达式,事情会更简单

我已经尝试使用给定的线性方程。请大家参考。

import re

equation = '30=10x-20'

#Checking 'c = bx+a' or 'bx+a = c'
x = re.match('[0-9]+=[0-9]+x+?-?[0-9]+',equation)

if x:
    #print('True')
    output_1 = equation.split('=')
    c = int(output_1[0])
    print('c = ',c)
    # checking the operator between bx and a
    #rhs = '[0-9]+x+?[0-9]+'
    y = re.match('[0-9]+x-?[0-9]+',output_1[1])

   if y:
        #filter_b = ['x']
        output_2 = output_1[1].split('-')
        a = int(output_2[1])
        b = int(output_2[0].replace("x",""))
        print('a = ',a)
        print('b = ',b)
    
  else:
       print('False')

else:
    print('False')

答案:

c =  30
a =  20
b =  10