我如何通过 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
今天,我做了一个关于 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