2016-03-18 21 views
1

爲什麼當我在1個函數中嘗試練習1條件時,它會起作用,但是當我嘗試添加下一個時 - 它只給出黑色光柵?爲什麼當我嘗試在1個函數中執行2個條件時,它只給我黑色光柵?

代替平均> 0.05 * 99 - 我試圖使: (平均> 0.05 * 99)&(平均< 0.20 * 99) (這是條件:大於5%但小於20%) 。

Python規則寫入多個條件可能會出錯嗎?

def computeThirdCondition(myArray): 
print "Executing Third Condition:" 
#Set up empty array: 
myArrayThird = numpy.zeros(myArray.shape).astype(float)  
thirdCondition = (theInputArray==11)|(theInputArray==12)*1 
for i in range (1,numpy.size(myArray,1)-1): 
    for j in range (1,numpy.size(myArray,0)-1): 
     average = 0.0 
     for ii in range(i-6,i+7): 
      for jj in range(j-4,j+5): 
       average = average + thirdCondition[j][i] 
     if (average > 0.05*99)&(average < 0.20*99): 
      myArrayThird[j][i] = 1     
return myArrayThird 
+0

它應該是 「和」 不是嗎? – orvi

回答

3

在Python &是按位操作者and而邏輯and是簡單地and。改變從

if (average > 0.05*99)&(average < 0.20*99): 

您行:

if average > 0.05 * 99 and average < 0.20 * 99: 

甚至:

if 0.20 * 99 > average > 0.05 * 99: 
+0

是的,它的工作原理。謝謝。 – asdqwery

+0

只有1個問題:在jj和ii for循環中,我必須使用 - average = average + thirdCondition [j] [i]還是average = average + thirdCondition [jj] [ii]? – asdqwery

+0

我對算法不熟悉,但我會說'[jj] [ii]' – Selcuk

相關問題