Olivia姜元 2023-02-17 17:50 采纳率: 60%
浏览 36
已结题

向您请教:代码缩进 一窍不通

真的完全不懂缩进错误,对于缩进一窍不通。怎么到处都是缩进报错
请您帮我顺便看看下面那些缩进问题怎么处理 不然我还是跑不了 谢谢

img


class  simNumpyArray(object):
       def __init__(self,p):
               '''可以接受列表、元组、range对象等类型的数据,每个元素必须为数字'''
           if type(p) not in (list,tuple,range):
                print(''输入数据类型错误!'')
                return
           for item in p:
                 #判断参数类型是否正确,可用系统函数isinstance()
                 #if isinstance(item,(int,float,complex)):
                if type(item) not in (int ,float,complex):
                    print(''数据类型错误!'')
                    return
                
self.__data=[list(p)]
      self.__row=1
      self.__col=len(p)
def __del__(self):
       del self.__data
#下面开始规定方法,一种是改变矩阵大小,一种是转置
def reshape(self,size):
       '''size参数给定新矩阵的大小,要求输入必须为列表或者元组,如[row,col]
          或者(row,col)。row和col其中一个可以为-1,代表自动计算'''
    if not isinstance(size ,(list,tuple)) or len(size)!=2:
           print(''给定的新矩阵大小输入参数不正确!'')
           return
    if (not isinstance(size[0],int)) or (not isinstance(size[1],int)):
          print(''矩阵大小请输入整数!'')
          return
    if size[0]!=-1 and size[1]!=-1 and size[0]*size[1]!=self.__row*self.__col:
          print(''新矩阵大小不正确!'')
          return
#当行数或者列数为-1时,应自动计算出另一个参数
      if size[0]==-1:
          if size[1]==-1 or (self.__row * self.__col)%size[1]!=0
             print(''新矩阵大小不正确!'')
             return
      if size[1]==-1:
          if size[0]==-1 or (self.__row * self.__col)%size[0]!=0
             print(''新矩阵大小不正确!'')
             return
#将输入矩阵转换为一阶
      data=[t for i in self.__data for t in i]
#按照输入大小重新设置矩阵
     if size[0]==-1:
         self.__row=int(self.__row*self.__col/size[1])
         self._ _col=size[1]
     if size[1]==-1:
         self.__col=int(self.__row*self.__col/size[0])
         self.__row=size[0]
     else:
         self.__size[0]
         self.__col=size[1]
     self.__data=[[data[row* self.__col +col] for col in range(self.__col)]
     for row in range(self.__row)]

    #矩阵转置
     @property
     def T(self):
           b=simNumpyArray([t for i in self.__data for t in i])
           b.reshape((self.__row,self.__col))
           b.__data=list(map(list,zip(*b.__data)))
           b.__row,b.__col=b.__col,b.__row
           return b

  • 写回答

3条回答 默认 最新

  • allyfireshen 2023-02-17 18:01
    关注

    试下:

    
    class  simNumpyArray(object):
        def __init__(self,p):
            '''可以接受列表、元组、range对象等类型的数据,每个元素必须为数字'''
            if type(p) not in (list,tuple,range):
                print('输入数据类型错误!')
                return
            for item in p:
                #判断参数类型是否正确,可用系统函数isinstance()
                #if isinstance(item,(int,float,complex)):
                if type(item) not in (int ,float,complex):
                    print('数据类型错误!')
                    return
                    
    self.__data=[list(p)]
    self.__row=1
    self.__col=len(p)
    
    def __del__(self):
        del self.__data
    #下面开始规定方法,一种是改变矩阵大小,一种是转置
    def reshape(self,size):
        '''size参数给定新矩阵的大小,要求输入必须为列表或者元组,如[row,col]或者(row,col)。row和col其中一个可以为-1,代表自动计算'''
        if not isinstance(size ,(list,tuple)) or len(size)!=2:
            print('给定的新矩阵大小输入参数不正确!')
            return
        if (not isinstance(size[0],int)) or (not isinstance(size[1],int)):
            print('矩阵大小请输入整数!')
            return
        if size[0]!=-1 and size[1]!=-1 and size[0]*size[1]!=self.__row*self.__col:
            print('新矩阵大小不正确!')
            return
    #当行数或者列数为-1时,应自动计算出另一个参数
        if size[0]==-1:
            if size[1]==-1 or (self.__row * self.__col)%size[1]!=0 :
                print('新矩阵大小不正确!')
                return
            if size[1]==-1:
              if size[0]==-1 or (self.__row * self.__col)%size[0]!=0:
                 print('新矩阵大小不正确!')
                 return
    #将输入矩阵转换为一阶
        data=[t for i in self.__data for t in i]
    #按照输入大小重新设置矩阵
        if size[0]==-1:
            self.__row=int(self.__row*self.__col/size[1])
            self.__col=size[1]
        if size[1]==-1:
            self.__col=int(self.__row*self.__col/size[0])
            self.__row=size[0]
        else:
             self.__size[0]
             self.__col=size[1]
        self.__data=[[data[row* self.__col +col] for col in range(self.__col)] for row in range(self.__row)]
     
        #矩阵转置
        @property
        def T(self):
            b=simNumpyArray([t for i in self.__data for t in i])
            b.reshape((self.__row,self.__col))
            b.__data=list(map(list,zip(*b.__data)))
            b.__row,b.__col=b.__col,b.__row
            return b
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月26日
  • 已采纳回答 2月18日
  • 创建了问题 2月17日

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元