簡體   English   中英

錯誤:預期縮進的塊

[英]Error: expected an indented block

有人可以解釋為什么我收到此錯誤嗎?

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

輸出:

%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 

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

Python在期待之后

if val > mean:

它忽略注釋的塊。 如果您有一個空的if語句,則只需傳遞即可,因此python知道它在那里。

if val>mean:
    #print(anomalies)
    pass

if需要身體,在

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM