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

2024-06-07 13:57:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

for(int i=0;i<=n;n++)
{ // start of block
      Statment1
} // end of block
Statement2

但是在下面的Python代码中

 for i in range(5):
    statement1
 statement2

我的意图是statement2不在循环中。

Python将如何标识此块的结尾?使用制表符空格?

我不知道会发生什么,特别是如果有嵌套循环。


Tags: of代码inforrange语句blockstart
2条回答

Python使用缩进来标识块,特定块中的所有语句都需要缩进到同一级别,尽管可以使用任意数量的缩进,但是特定块中的所有语句都需要具有相同的缩进级别。因此在您的示例中,Statement 2确实位于for循环的外部,缩进级别相同,因此它与for循环位于同一块中。

需要注意的一点是,即使允许对不同的块使用不同级别的缩进(包括混合制表符和空格,但不应这样做,而且始终应使用相同的缩进量),也就是说,如果将一个块缩进为前一个块的4个空格,理想情况下你应该总是那样缩进。

PEP-0008 (The style guide for Python)建议使用4个空格作为缩进。

这确实是通过缩进来完成的。所以在你的例子中,statement 1在for循环中,statement 2不在。你可以使用空格和制表符作为缩进,只要你在代码中的任何地方都使用相同的东西。

嵌套for循环的示例:

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

print j在j-for-loop中完成。print i在i-for-loop中完成。Done!最后只打印一次。

相关问题 更多 >

    热门问题