2017-08-04 54 views
0

有人可以解釋爲什麼我收到此錯誤嗎?錯誤:預計會出現縮進塊

from netCDF4 import Dataset 
import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import Basemap 

datapath = r"C:\Users\matth\Downloads\MYD04_L2_v6.0_110E155E_045S010S.A2010_calcv2_dod_flg1.nc" 
f = Dataset(datapath) 

for i in range(0, 30): 
    dod = f.variables['dod_modis_flg1'][i] 
    dod[dod == 0] = np.nan 

    def nan_if(arr, value): 
     return np.where(arr == value, np.nan, arr) 
    mean = np.nanmean([nan_if(dod, -9.99)]) 
    print(mean) 
    #print(np.nanmax(dod)) 
    #print(np.nanmin([nan_if(dod, -9.99)])) 

    dod_high = dod[(dod > mean) & (dod != 0)] 
    anomalies = [] 
    for val in dod_high: 
     if val > mean: 
      #print(anomalies) 

    dod_high_indices1 = np.where((dod > mean) & (dod != 0)) 
    dod_high_indices2 = np.array(np.where((dod > mean) & (dod != 0))).T 
    anomalies_ind = [] 
    for ind in dod_high_indices2: 
     anomalies_ind.append(ind) 
     print(np.asarray(anomalies_ind)) 

OUTPUT:

%run "C:/Users/matth/dod_anomalies.py" 
    File "C:\Users\matth\dod_anomalies.py", line 26 
    dod_high_indices1 = np.where((dod > mean) & (dod != 0)) 
^
IndentationError: expected an indented block 

這在我看來,我的代碼的縮進是正確的...由於某種原因,我不斷收到此錯誤。

+1

你應該只是取消'打印(異常)' – PRMoureu

回答

2

if需要一個身體,在

for val in dod_high: 
    if val > mean: 
     #print(anomalies) 

評論不算數。您可以使正文pass或註釋掉if(或整個循環),但在上下文中,您似乎可能會遇到更嚴重的問題。即使沒有註釋,那print只會打印[]

4

Python是

if val > mean: 

它忽略了註釋塊之後期待着什麼。如果你有這樣一個空的if語句,只需傳入,python知道它在那裏。

if val>mean: 
    #print(anomalies) 
    pass 
+0

現在我覺得非常愚蠢。謝謝。 –