【问题标题】:How does Python know a block of code is in a loop? [duplicate]Python 如何知道代码块在循环中? [复制]
【发布时间】:2015-08-24 06:57:54
【问题描述】:

在循环中,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

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

Python 如何识别这个块的结尾?通过使用 TAB 空格?

我对会发生什么感到困惑,尤其是在存在嵌套循环的情况下。

【问题讨论】:

    标签: python


    【解决方案1】:

    这确实是通过缩进完成的。因此,在您的示例中,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! 最终只会打印一次。

    【讨论】:

    • @Veerendra 注意:缩进 not 意味着它必须有制表符 (\t) 字符。您可以使用简单的空格。事实上,缩进 python 最标准的方法是使用 4 个空格而不是制表符(只需将编辑器配置为在按下制表符时插入 4 个空格)。
    • @Mathias711 我才知道这个谢谢
    • @AhmedAkhtar 没问题,祝你好运!
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 2015-03-09
      • 2020-02-22
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      相关资源
      最近更新 更多