繁体   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