簡體   English   中英

嵌套for循環IndentationError:使用日歷模塊時,預期縮進的塊

[英]Nested for loop IndentationError: expected an indented block when using calendar module

我對python很陌生,因此請原諒任何基本錯誤。 我從網站上獲取了這段代碼(看起來相當簡單),因此我認為它可以工作。 基本上,我希望該代碼塊打印出2015年至2016年之間的所有日期。據我所知,縮進看起來還不錯。 我也嘗試過調整縮進量,但是我沒有運氣讓它生效。 任何幫助將不勝感激。

import calendar

cal = calendar.Calendar()

for year in range(2015,2016):
    for month in range(1,13):
        monthdays = [d for d in cal.itermonthdays(year,month) if d != 0]    
        for day in monthdays:
            r = str(year) + str(month) + str(day)
            print(r)

每當代碼運行時,都會出現此錯誤:

>>> for year in range(2015,2016):
... for month in range(1,13):
File "<stdin>", line 2
    for month in range(1,13):
    ^
IndentationError: expected an indented block
>>> monthdays = [d for d in cal.itermonthdays(year,month) if d != 0]
>>> for day in monthdays:
... r = str(year) + str(month) + str(day)
File "<stdin>", line 2
    r = str(year) + str(month) + str(day)
    ^
IndentationError: expected an indented block

提前致謝。

縮進在Python中很重要。 如果您之前使用過C或Java代碼,則塊位於{}之間,但是在Python中,則不同,將:之后的縮進行視為“塊”。 ifwhiledef等之后的行必須通過空格或制表符進一步縮進。

問題是您可能將該代碼復制並粘貼到IDE或終端中,並且縮進不保留。

看一下這些行:

   >>> for year in range(2015,2016):
   ... for month in range(1,13):

雙方for在同一個縮進級別,他們之前沒有空格/選項卡。 是問題 它應該是:

   >>> for year in range(2015,2016):
   ...     for month in range(1,13):

縮進可以是一個空格,兩個空格或更多,也可以是制表符,只要它們是一致的即可。

等等...

暫無
暫無

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

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