3 votes

Erreur de syntaxe avec l'opérateur ternaire

Je suis nouveau en Python et j'essaie d'utiliser l'opérateur ternaire qui a ce format (je pense)

value_true if <test> else value_false

Voici un extrait de code :

expanded = set()

while not someExpression:

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

    # some code here

Mais Python n'aime pas ça et dit :

SyntaxError: invalid syntax (pointed to if)

Comment le réparer ?

10voto

defuz Points 5575

Opération ternaire en python utilisant pour expression pas déclarations . L'expression est quelque chose qui a de la valeur.

Exemple :

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

Pour les déclarations (blocs de code tels que continue , for etc.) utilisent if :

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

Ce que vous voulez faire :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X