为何不能在同一行将一个if语句作为另一个if语句的子语句?
为什么嵌套单行if会触发语法错误?
Python的单行if语句有明确的语法限制:冒号后面只能跟单个独立语句,不能是另一个带冒号的复合语句(比如嵌套的if、for这类)。
- 合法的单行if:
if True: print('OK'),这里冒号后是单个print语句,符合语法规则。 - 非法的嵌套单行if:
if True: if True: print('Breaks with "SyntaxError: invalid syntax"'),外层if的冒号后跟着的是另一个if语句——这是一个复合语句(它自身包含冒号和子语句),不属于「单个独立语句」的范畴,违反了Python的语法定义,所以会抛出语法错误。
如果要实现嵌套逻辑,必须用多行缩进的写法,比如:
if True: if True: print('Works fine')
内容的提问来源于stack exchange,提问作者EquipDev
相关产品推荐
相关产品推荐

