首页 > 解决方案 > 多个 if 语句后的 else 语句

问题描述

快速理论问题

if x:
    y

if a:
    b

if 1:
    2

else:
    3

底部“else”仅影响最后一个 if?

标签: pythonpython-3.x

解决方案


从语法:

if_stmt ::=  "if" assignment_expression ":" suite
             ("elif" assignment_expression ":" suite)*
             ["else" ":" suite]

粗略地说, Asuite是一系列缩进语句。x赋值表达式也是如此,并且y是与第一个关联的套件if。因为下一个标记是if,它开始一个新的if语句,而不是以if任何方式继续第一个语句。

因此,您有三个单独的if语句。前两个没有关联的eliforelse子句;第三个有一个else子句。


推荐阅读