为什么我不能用单行条件打破?

时间:2017-03-10 15:58:53

标签: python

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

while something:

    # do something

    # This is an invalid syntax
    break if condition else pass

由于自v2.5起允许conditional expressions,为什么不允许这种用法?

3 个答案:

答案 0 :(得分:4)

三元运算符需要表达式,而 code{ display: inline-block; over-flow: scroll; width: 90%; } break都是语句。

答案 1 :(得分:1)

你的问题的答案是break是一个陈述,而不是一个表达。 Python的开发人员明确决定他们不希望Python成为基于表达式的语言,因此构造的语法错误。正如@Dmitry指出的那样,没有办法避免使用break语句。

答案 2 :(得分:0)

使用这种方式:

while something:

    if condition:
        break
    else:
        ...

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