Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使类进程成为2乘2矩阵,并让问题通过_str返回___Python_Python 3.x_Math_Matrix - Fatal编程技术网

Python 使类进程成为2乘2矩阵,并让问题通过_str返回__

Python 使类进程成为2乘2矩阵,并让问题通过_str返回__,python,python-3.x,math,matrix,Python,Python 3.x,Math,Matrix,因此,我必须通过一个类处理一个2乘2的矩阵,并返回打印输出的str。我不能真正创建新函数,而且我很确定矩阵的数学很好,我只是有一些输出问题。我标记了这个区域,特别是我不能修改的输出,但是我可以修改类来支持它 这是我的密码 #此代码旨在获取一个2乘2的矩阵,并将其与另一个矩阵相加、相减、相乘,以及求逆和幂。 # ----------------------------------------------------------------------------------------------

因此,我必须通过一个类处理一个2乘2的矩阵,并返回打印输出的str。我不能真正创建新函数,而且我很确定矩阵的数学很好,我只是有一些输出问题。我标记了这个区域,特别是我不能修改的输出,但是我可以修改类来支持它

这是我的密码

#此代码旨在获取一个2乘2的矩阵,并将其与另一个矩阵相加、相减、相乘,以及求逆和幂。
# ----------------------------------------------------------------------------------------------------------------------
#这就是我们将如何使用math.nan和仅使用math.nan的方法
输入数学
#你的课应该在这里
类Matrix2x2:#根据需要初始化。
定义初始化(self,a,b,c,d):
self.a=a
self.b=b
self.c=c
self.d=d
定义添加(自我,秒):
返回(Matrix2x2(self.a+second.a,self.b+second.b,self.c+second.c,self.d+second.d))
def(self,second):#只是减法而不是加法
返回(Matrix2x2(self.a-second.a,self.b-second.b,self.c-second.c,self.d-second.d))
def uu mul uu(self,second):#根据相应的点和一些加法将它们相乘。
返回(matrix2x2x2(self.a*second.a+self.b*second.c,self.a*second.b*second.d,self.c*second.a+self.d*second.c,self.c*second.b+self.d*second.d))
def_uuupow_uuu(自我,力量):#过程根据我们的工作内容而变化。
StoredMatrix=Matrix2x2x2(self.a、self.b、self.c、self.d)#变量只是保存信息并使数学更清晰。
行列式=1/((self.a*self.d)-(self.b*self.c))#用于简化反演并确定是否存在反演。
逆矩阵=矩阵x2x2(self.d*行列式,-self.b*行列式,-self.c*行列式,self.a*行列式)
如果功率>0:
计数=1
当count
我通常会因为使用add函数的非类型而出错。这不允许我看到会出现什么错误。我尝试使用str()将它们单独转换为字符串,但得到了相同的错误。我不认为是数学问题,南也是。 以下是一个例子:

添加:A+B
[ 1 2 ]
[ 3 4 ]
回溯(最近一次呼叫最后一次):
文件“ThiswaspurposelySensored”,第51行,在
打印(A,“+\n”,B,“=\n”,A+B,sep=”“)
TypeError:\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
进程已完成,退出代码为1

无论如何,我如何避免非类型问题或使其与str兼容,而不干扰数学和所需输入过多?我将提供您可能需要的更多信息来帮助我解决此问题。

将您的
\uuu str\uuuu
方法重写为这样

def __str__(self):
    return '[ {} {} ]\n[ {} {} ]'.format(self.a, self.b, self.c, self.d)
稍微短一点
def\uu str\uuu(self)
remove
print(…)
函数中。打印函数始终返回
None
-相反,返回格式化字符串。
\b
是退格。你确定你想要吗?该死,那很简单。它现在可以工作了,谢谢。不要把所有的东西都用
str
{}
已经这样做了,我刚刚从我们的源代码中复制了:)如果版本不允许f-string,也可以写为:
'[{x.a}{x.b}]\n[{x.c}{x.d}'。格式(x=self code>
def __str__(self):
    return '[ {x.a} {x.b} ]\n[ {x.c} {x.d} ]'.format(x=self)