关于#Python#的问题,如何解决?

完成附件中的程序,该程序定义了一个行列式的类,从csv文件中读取方阵的内容,程序对文件内容的有效性进行检查,并以异常的方式进行处理。具体要求,见程序注释。

请自定义csv文件对程序进行测试。

# ***************完成题目的时候,不要修改已有的语句,仅增加缺少的语句。*****************
import csv
class SquareMatrix():
    #定义一个方阵类
    def __init__(self,filename):
        # 完成行列式的初始化,行列式只有一个文件名属性,即读入行列式的文件名。
    
    def __enter__(self):
        # 完成__enter__函数
        try:
            file1 = open(self.filename, 'r')
            reader = csv.reader(file1)

            contents = []
            for row in reader:
                # 完成该for循环的内容
                # 将输入文件中的数据以浮点数的形式储存在contents这个二维列表中。

            # 检查contents的行和列,如果行和列不相等,则抛出一个异常RCError.
            # RCError类在后面进行定义。

                    raise RCError()  #注意题目要求,已有的语句不能修改。

        except Exception as e:
            # 完成except语句块
            # 如果有异常发生,则打印异常的信息,
            # 异常发生时,给对象新增属性contents,contents的属性为空列表[]。
        else:
            # 此处不做修改。
            self.contents = contents
            return self
        finally:
            # 完成finally语句块
            # 如果文件file1正常打开,则关闭文件。
    
    def __exit__(self, exc_type, exc_value, trace):
        # 此处不修改
        print('done')
        return False

    def getDet(self):
        #完成函数,返回该方阵行列式的值。可以选取你擅长的方法计算行列式的值。
        return det

class RCError(Exception):
    # 完成该异常类的定义。
    def __init__  #完成异常类的__init__函数,该异常包含一个名为message的对象属性。

    def __str__(self):
        return #返回提示文字,以及message的内容。

# 下面的内容可以修改文件名,对程序进行测试。
if __name__ == '__main__':
    with SquareMatrix('c.csv') as d1:
        print(d1.contents)
        print(d1.getDet())# ***************完成题目的时候,不要修改已有的语句,仅增加缺少的语句。*****************
import csv
class SquareMatrix():
    #定义一个方阵类
    def __init__(self,filename):
        # 完成行列式的初始化,行列式只有一个文件名属性,即读入行列式的文件名。
    
    def __enter__(self):
        # 完成__enter__函数
        try:
            file1 = open(self.filename, 'r')
            reader = csv.reader(file1)

            contents = []
            for row in reader:
                # 完成该for循环的内容
                # 将输入文件中的数据以浮点数的形式储存在contents这个二维列表中。

            # 检查contents的行和列,如果行和列不相等,则抛出一个异常RCError.
            # RCError类在后面进行定义。

                    raise RCError()  #注意题目要求,已有的语句不能修改。

        except Exception as e:
            # 完成except语句块
            # 如果有异常发生,则打印异常的信息,
            # 异常发生时,给对象新增属性contents,contents的属性为空列表[]。
        else:
            # 此处不做修改。
            self.contents = contents
            return self
        finally:
            # 完成finally语句块
            # 如果文件file1正常打开,则关闭文件。
    
    def __exit__(self, exc_type, exc_value, trace):
        # 此处不修改
        print('done')
        return False

    def getDet(self):
        #完成函数,返回该方阵行列式的值。可以选取你擅长的方法计算行列式的值。
        return det

class RCError(Exception):
    # 完成该异常类的定义。
    def __init__  #完成异常类的__init__函数,该异常包含一个名为message的对象属性。

    def __str__(self):
        return #返回提示文字,以及message的内容。

# 下面的内容可以修改文件名,对程序进行测试。
if __name__ == '__main__':
    with SquareMatrix('c.csv') as d1:
        print(d1.contents)
        print(d1.getDet())