为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2021-08-17 16:38:41
Python3for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]在语法书中定义了 for 循环。suite被定义为suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT。对我来说,很难理解 double for 循环如何适合列表理解的语法描述。有几个较小的问题:那么else呢?我假设它用于列表理解。那么正常的 for 循环可以使用else块吗?如果您能提供示例,我将不胜感激。
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

从语法的其他规则可以看出:

suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT

suite 要么是一个简单的语句(在一行中),例如:

for foo in bar: some_statement()

或者它是一个换行符,后跟一个缩进块(由语句组成)。


'else' 只是字符串“else”。

我通常else将 for 循环的读作“无中断”:它在 for 循环完成后执行,但前提是它没有被break. 它存在的原因是与 一致while,它有一个else声明,因为它基本上只是一个重复的if



查看完整回答
反对 回复 2021-08-17
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

根据文档,如果循环结束而没有中断,则执行循环的else子句for。


看这两个例子:


for elem in range(5):

    print(elem)

else:

    print('ended')

在这里,suite部分对应于print(elem),输出将是:


0

1

2

3

4

ended

第二:


for elem in range(5):

    if elem < 3:

        print(elem)

    else:

        break

else:

    print('ended')

在这里,suite部分对应于if elem < 3: print(elem) else: break,输出将是:


0

1

2


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信