python:TypeError:无法解压缩不可迭代的NoneType对象

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?