如何解决python:TypeError:无法解压缩不可迭代的NoneType对象
嘿,我正在制作一个项目,其中我为给定的线性方程式绘制图形
我收到此错误:
TypeError:无法解包不可迭代的nonetype对象
完整的追溯错误:
回溯(最近通话最近一次):
第116行,在 run()
第114行,正在运行 plot()
第102行,在图中 solx,soly = resolve_eq()
TypeError:无法解包不可迭代的nonetype对象
代码:
import matplotlib.pyplot as plt
import sympy as simp
import re
'''
Linear Eq formula = y = ax + c
'''
#eq1 = a1x + b1y + c1 = 0
#eq2 = a2x + b2y + c2 = 0
def a_inp_eq1():
global a1
a1 = input('Please specify the value of "a" for the first equation: ')
a1 = simp.sympify(a1)
global b1
b1 = input('Please specify the value of "b" for the first equation: ')
b1 = simp.sympify(b1)
global c1
c1 = input('Please specify the value of "c" for the first equation: ')
c1 = simp.sympify(c1)
def a_inp_eq2():
global a2
a2 = input('Please specify the value of "a" for the second equation: ')
a2 = simp.sympify(a2)
global b2
b2 = input('Please specify the value of "b" for the second equation: ')
b2 = simp.sympify(b2)
global c2
c2 = input('Please specify the value of "c" for the second equation: ')
c2 = simp.sympify(c2)
def check_errors_eq1():
try:
int(a1)
int(b1)
int(c1)
except ValueError:
try:
float(a1)
float(b1)
float(c1)
except ValueError:
print('One of your inputs may not be a valid one please try again,this time with valid ones')
a_inp_eq1()
def check_errors_eq2():
try:
int(a2)
int(b2)
int(c2)
except ValueError:
try:
float(a2)
float(b2)
float(c2)
except ValueError:
print('One of your inputs may not be a valid one please try again,this time with valid ones')
a_inp_eq2()
def conversion():
global a_con1
a_con1 = a1 * -1
global c_con1
c_con1 = c1 * -1
global a_con2
a_con2 = a2 * -1
global c_con2
c_con2 = c2 * -1
# equation solver
def solve_eq():
x = simp.Symbol('x')
y = simp.Symbol('y')
eq = (a1 * x + b1 * y + c1,a2 * x + b2 * y + c2)
global sol
sol = simp.solve(eq,x,y)
print(sol)
m = re.match(r'^{x: (\d+),y: (\d+)}',str(sol))
if m:
return m.group(1),m.group(2)
# defining the main plotting function
def Linear_eq(a,b,clr):
x = list(range(0,11))
y = [(a * ints + b) for ints in x]
print(y)
plt.plot(x,y,label = 'linear',linestyle = '-',color= clr)
def plot():
solx,soly = solve_eq()
Linear_eq(a_con1,c_con2,'r')
Linear_eq(a_con2,'b')
plt.annotate('(%s,%s)'%(solx,soly),(float(solx),float(soly)))
plt.show()
def run():
a_inp_eq1()
a_inp_eq2()
check_errors_eq1()
check_errors_eq2()
conversion()
plot()
run()
我认为问题出在我的正则表达式上,但我不确定如何解决
这是我尝试匹配的结果: {x:-3,y:-2}
正在执行的功能是
def solve_eq():
x = simp.Symbol('x')
y = simp.Symbol('y')
eq = (a1 * x + b1 * y + c1,y)
print(sol)
m = re.match(r'^ {x: (\d+),m.group(2)
任何帮助将不胜感激,谢谢您的宝贵时间!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。