python程序不能正确使用条件语句

2024-05-08 00:58:05 发布

您现在位置:Python中文网/ 问答频道 /正文

  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()

大家好。 我写了这个程序,它工作得很好,但我有一个问题(如上所述)

感谢各位的意见:)


Tags: answerforlenifmaindef原因语句
1条回答
网友
1楼 · 发布于 2024-05-08 00:58:05

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

while循环条件只在循环的每次迭代开始时测试。如果它在循环的中间停止为真,Python在下一次迭代开始之前不会注意到它,并且只有在那一点上它仍然不是真的。如果希望在循环中间测试循环条件,则需要使用if语句之类的语句手动测试它,或者需要重新组织循环。你知道吗

相关问题 更多 >