Python 为什么可以';我不能用一行条件语句中断吗?

Python 为什么可以';我不能用一行条件语句中断吗?,python,Python,我正在使用Python 3.6。我注意到以下情况是不允许的: while something: # do something # This is an invalid syntax break if condition else pass 既然从v2.5开始允许使用,为什么不允许使用此用法?请这样使用: while something: if condition: break else: ... 注意三元条件运算符

我正在使用Python 3.6。我注意到以下情况是不允许的:

while something:

    # do something

    # This is an invalid syntax
    break if condition else pass
既然从v2.5开始允许使用,为什么不允许使用此用法?

请这样使用:

while something:

    if condition:
        break
    else:
        ...

注意三元条件运算符不适用于python语句。

三元运算符需要表达式,而
break
pass
都是语句。

您的问题的答案是
break
是语句,而不是表达式。Python的开发人员明确地决定,他们不希望Python是一种基于表达式的语言,因此您的构造会出现语法错误。正如@Dmitry所指出的,没有办法避免出现一个
break
语句。

我同意,因为
break
(和
pass
)是语句,而不是表达式。条件表达式是一个复合表达式,与任何表达式一样,它的计算结果为一个值。
break
是一个语句。如果只需要break,则允许(尽管样式有问题)在单行上编写
,如果条件:break
。然而,目前垂直空格似乎并不短缺。如果我对另一个Python问题不清楚,很抱歉。我不是想暗示你抄袭了我的答案,只是你的答案比我的来得晚,没有带来任何新的价值。谢谢你删除它。请注意,我没有对你的答案投反对票(这就是我留下评论的原因),对我的答案投反对票对你的声誉的伤害比我的更大。顺致敬意,Eric@EricDuminil我提供了自己的代码,没有考虑其他答案。他们认为对我来说没有什么不同。我认为用户有权评估答案。我已经取消了我的否决票,投票赞成你的回答。祝你一切顺利,德米特里。