Python 中的“suite”和“else”是什么语法规则?

Python3for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]语法书中定义了 for 循环。suite被定义为suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT

对我来说,很难理解 double for 循环如何适合列表理解的语法描述。

有几个较小的问题:

  • 那么else呢?我假设它用于列表理解。

  • 那么正常的 for 循环可以使用else块吗?

如果您能提供示例,我将不胜感激。


繁花不似锦
浏览 292回答 3
3回答

慕尼黑5688855

从语法的其他规则可以看出:suite: simple_stmt | NEWLINE INDENT stmt+ DEDENTsuite 要么是一个简单的语句(在一行中),例如:for foo in bar: some_statement()或者它是一个换行符,后跟一个缩进块(由语句组成)。'else' 只是字符串“else”。我通常else将 for 循环的读作“无中断”:它在 for 循环完成后执行,但前提是它没有被break. 它存在的原因是与 一致while,它有一个else声明,因为它基本上只是一个重复的if。

Cats萌萌

根据文档,如果循环结束而没有中断,则执行循环的else子句for。看这两个例子:for elem in range(5):&nbsp; &nbsp; print(elem)else:&nbsp; &nbsp; print('ended')在这里,suite部分对应于print(elem),输出将是:01234ended第二:for elem in range(5):&nbsp; &nbsp; if elem < 3:&nbsp; &nbsp; &nbsp; &nbsp; print(elem)&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; breakelse:&nbsp; &nbsp; print('ended')在这里,suite部分对应于if elem < 3: print(elem) else: break,输出将是:012
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python