python程序无法正常使用条件语句

时间:2014-03-15 23:55:58

标签: python if-statement

  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()
你好。 我写了这个程序,它运行得很好,但我遇到了一件事(如上所示)

感谢您的输入人员:)

1 个答案:

答案 0 :(得分:1)

看起来你希望循环在添加元素后立即结束,导致列表大小匹配。这不是循环的工作方式。

while循环条件仅在循环的每次迭代开始时进行测试。如果它在循环中间停止,则Python不会注意到下一次迭代的开始,并且只有在此时它仍然不正确。如果您希望在循环中间测试循环条件,则需要使用类似if语句的方法对其进行手动测试,或者需要重新组织循环。