与三元运算符语法错误(Syntax error with ternary operator)

2019-08-01 07:59发布

我是新来的Python和我试图使用具有这种格式的三元算子的(我是这么认为的)

value_true if <test> else value_false

下面是一个代码片段:

expanded = set()

while not someExpression:

    continue if currentState in expanded else expanded.push(currentState)

    # some code here

但是Python不喜欢它,并说:

SyntaxError: invalid syntax (pointed to if)

如何解决呢?

Answer 1:

在python三元操作使用的表达 ,而不是语句 。 表达的东西,具有价值。

例:

result = foo() if condition else (2 + 4)
#        ^^^^^                   ^^^^^^^
#      expression               expression

对于语句(代码块,如continuefor等)的使用if

if condition:
     ...do something...
else:
     ...do something else...

你想做什么:

expanded = set()

while not someExpression:
    if currentState not in expanded: # you use set, so this condition is not really need
         expanded.add(currentState)
         # some code here


文章来源: Syntax error with ternary operator