以下条件是否等价

Are the following conditionals equivalent

下面的条件是否等价?

      if (array[i][j] == 1 and (i,j) not in APP) or (array[i][j] == 1 and (i,j) in APP and IterateAPP == 1) :
            #do stuff

       if array[i][j] == 1:
            if (i,j) in APP:
                 if IterateAPP == 1:
                      #do stuff
                 elif IterateAPP == 0:
                      print "Doing nothing"
            if (i,j) not in APP:
                      #do stuff

如果#do stuff中的代码两处相同,那么您可以使用第一个片段。但是从逻辑上讲,它们是相同的...

是的,第一个片段没有涵盖 print "Doing nothing" 部分

更简单的,你可以分解出公共部分:

if array[i][j] == 1 and (IterateAPP == 1 or (i,j) not in APP):
    # do stuff

你知道的奇怪的变量名约定:)