def matrixADD(A,B):
minilist=[]
Z = []
a=-1
b=-1
由于某些原因,下面while循环中的条件未被遵循,因此索引超出范围。为了解决这个问题,我不得不在下面添加嵌套的if语句以跳出循环。这是非常奇怪的,我想知道为什么没有if语句它就不能工作?你知道吗
while len(A)!=len(Z):
x=-1
y=-1
a=a+1
b=b+1
if len(minilist)!=0:
Z.append(minilist)
if len(A)==len(Z):
break
minilist=[]
while len(A[a])!=len(minilist):
for numbers in A[a]:
x=x+1
y=y+1
answer=(A[a][x]+B[b][y])
minilist.append(answer)
return Z
def main():
#Test matrices
A = [[2,4], [7,0], [6,3]]
B = [[3,1], [-1,8], [-3, 3]]
Z=matrixADD(A,B)
print("A + B:",Z)
main()
大家好。 我写了这个程序,它工作得很好,但我有一个问题(如上所述)
感谢各位的意见:)
看起来您希望循环在添加导致列表大小匹配的元素后立即结束。循环不是这样工作的。你知道吗
while
循环条件只在循环的每次迭代开始时测试。如果它在循环的中间停止为真,Python在下一次迭代开始之前不会注意到它,并且只有在那一点上它仍然不是真的。如果希望在循环中间测试循环条件,则需要使用if
语句之类的语句手动测试它,或者需要重新组织循环。你知道吗相关问题 更多 >
编程相关推荐