【发布时间】:2014-09-03 06:35:36
【问题描述】:
我是 Python 的新手,所以我需要你的帮助。 程序必须添加和减去随机矩阵。
import random
class Matrix:
def __init__(self):
self.mat = [[]]
def gen_ran_numb(self,row=5,col=5):
self.mat=[[random.randint(0,10) for z in xrange(col)] for z in xrange(row)]
def print_matrix(self):
print self.mat
def __add__(self,b):
mat=[]
for j in range(len(self.mat)):
temp=[]
for k in range(len(self.mat[0])):
x=self.mat[j][k] + b.mat[j][k]
temp.append(x)
mat.append(temp)
rez=mat
return rez
def __sub__(self,b):
mat=[]
for j in range(len(self.mat)):
temp=[]
for k in range(len(self.mat)):
x=self.mat[j][k] - b.mat[j][k]
temp.append(x)
mat.append(temp)
return mat
a=Matrix()
b=Matrix()
c=Matrix()
a.print_matrix()
a.gen_ran_numb(5,5)
b.gen_ran_numb(5,5)
c.gen_ran_numb(5,5)
a.print_matrix()
b.print_matrix()
c.print_matrix()
print b+a
print b+a+c
如果我添加 2 个矩阵,效果很好,但如果我添加 3 或 4 个矩阵,我会出现此错误:
Traceback (most recent call last):
File "C:/Users/Вадик/Documents/Python/task.py", line 40, in <module>
print b+a+c
TypeError: can only concatenate list (not "instance") to list
我不明白我做错了什么。 请帮我。 谢谢!
【问题讨论】:
-
你没有返回
Matrix。 -
并且认为你应该写在 add.. for k in range(len(self.mat[j])): ... 如果行和列不相等..
-
错误很明显!
you couldn't add matrix
标签: python oop python-2.7 matrix add