为什么不用if其他简写与break一起工作 - Python

Vis*_*hwa 4 python if-statement python-2.7

当条件匹配时,我一直试图摆脱循环.我试过下面的单行:

break if a is not None else time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

还有这个

a is not None and break
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

两者都没有工作和投掷,SyntaxError而直接工作正常.

if a is not None:
    break
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

虽然我这样使用它没有问题,但我只是想知道为什么上面的语法是错误的.

vy3*_*y32 5

表达 表达 if 表达 else 表达是一个三元运算符.表达式被评估.break是一份声明.它没有被评估,它被执行了.您收到语法错误,因为语法不正确.

正如@hugo Rivera在下面所说,"所有表达都是陈述,但并非所有陈述都是表达."