Python如何知道一段代码在循环中?

12

在循环中,Python如何确定哪些语句属于循环体?

例如,在C语言中,可以这样编写:

for(int i=0; i<=n; n++)
{ // Start of block
      Statement 1
} // End of block
Statement 2

然而,在下面的Python代码中

 for i in range(5):
    statement 1
 statement 2

我的意图是语句2不在循环中。

Python将如何识别此块的结尾?通过使用TAB空格吗?

我对发生的事情感到困惑,特别是如果有嵌套循环。

2个回答

12

这确实是通过缩进来实现的。因此在您的示例中,语句1在for循环中,语句2不在其中。您可以使用空格和制表符作为缩进,只要在代码中的所有位置都使用相同的内容即可。

嵌套for循环的示例:

for i in range(5):
    for j in range(10):
        print j
    print i
print 'Done!'

print j 是在 j 循环中完成的。 print i 是在 i 循环中完成的。Done! 只会在最后被打印一次。


1
注意:缩进并不意味着必须使用制表符(\t)。您可以使用简单的空格。事实上,缩进 Python 最标准的方法是使用 4 个空格而不是制表符(只需配置您的编辑器,在按下制表符时插入 4 个空格即可)。 - Bakuriu
@Mathias711,我刚刚得知这个,谢谢。 - Ahmed Akhtar
@AhmedAkhtar 没问题,祝你好运! - Mathias711

4

Python使用缩进来识别代码块。一个特定块中的所有语句需要缩进到相同的级别,尽管您可以使用任何数量的缩进,但是一个特定块中的所有语句需要具有相同的缩进级别。所以在你的例子中,Statement 2确实在同样缩进级别下的for循环外部,因此它在与for循环相同的块中。

需要注意的一点是,尽管允许为不同的块使用不同级别的缩进(包括混合制表符和空格),但是您不应该这样做,并且始终应该在整个程序中使用相同数量的缩进(即如果您将一个块缩进为前一个块的四个空格,则理想情况下应始终这样缩进)。

PEP-0008(Python的样式指南)建议使用四个空格作为缩进。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接