Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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程序不能正确使用条件语句_Python_If Statement - Fatal编程技术网

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

python程序不能正确使用条件语句,python,if-statement,Python,If Statement,由于某种原因,下面while循环中的条件未被遵循,因此索引超出范围。为了解决这个问题,我不得不在下面添加嵌套的if语句来打破循环。这很奇怪,我想知道为什么没有if语句它就不能工作 def matrixADD(A,B): minilist=[] Z = [] a=-1 b=-1 嗨,伙计们。 我写了这个程序,它工作得很好,但我有一件事遇到了一些麻烦(如上所述) 感谢您的输入:)看起来您希望在添加导致列表大小匹配的元素后,循环将立即结束。循环不是这样工作的 wh

由于某种原因,下面while循环中的条件未被遵循,因此索引超出范围。为了解决这个问题,我不得不在下面添加嵌套的if语句来打破循环。这很奇怪,我想知道为什么没有if语句它就不能工作

  def matrixADD(A,B):
    minilist=[]
    Z = []
    a=-1
    b=-1
嗨,伙计们。 我写了这个程序,它工作得很好,但我有一件事遇到了一些麻烦(如上所述)


感谢您的输入:)

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


while
循环条件仅在循环每次迭代开始时测试。如果它在循环中途停止,Python将不会注意到下一次迭代的开始,只有在那个时候它仍然不是真的。如果要在循环中间测试循环条件,则需要手动测试它,如“<代码> >如果语句,或者需要重新组织循环。< /P>它给您什么例外?您的代码是不可读的。消除不必要的空白,并将变量命名为描述性变量(看在上帝的份上,我应该知道
A
是什么,以及为什么我们要重复对它进行操作,直到
minilist
与它一样长!而且它看起来像是在使用索引而不是iterable中元素的
来迭代列表。不要在Python中这样做。告诉我们您试图完成什么,它将在整个列表中运行。)总比试图修复一个错误的it@Stendika当我运行调试过程时,在添加第三个迷你列表(即A和B中的第三个嵌套列表之和)后,它将继续运行。要取消它,我必须将其放入该条件语句中。@adsmith如果您向下看,我已编写了A。如果您在阅读代码时遇到问题,我将立即对其进行编辑。很好的解释,老兄。我今年上的是comsci第一年的课,你刚才说的还没有教。这正是我所期望的。再次感谢。)
    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()