invalid syntax

Python Erreur courante

Explication

L'erreur `SyntaxError: invalid syntax` est le message générique de Python quand il **n'arrive pas à analyser** votre code. La ligne (ou souvent la ligne **juste au-dessus**) contient une faute de structure : deux-points oublié, parenthèse non fermée, guillemet manquant, ou syntaxe d'une autre version de Python. ```python if x == 1 # il manque les deux-points print(x) # SyntaxError: invalid syntax ```

Causes courantes

- **Deux-points manquant** après `if`, `for`, `while`, `def`, `class`, `else`. - **Parenthèse, crochet ou accolade non fermé** (l'erreur apparaît alors **une ligne trop bas**). - **Guillemet manquant** ou mal apparié. - **`=` au lieu de `==`** dans une condition. - **Syntaxe Python 2** : `print "x"` au lieu de `print("x")`. - **Mot réservé utilisé comme variable** (`class = 3`, `lambda = 1`).

1. Ajoutez le deux-points

if x == 1:        # ✅
    print(x)

2. Vérifiez la ligne AU-DESSUS de celle signalée

Quand une parenthèse n'est pas fermée, Python ne s'en aperçoit qu'à la ligne suivante :

total = (1 + 2     # parenthèse jamais fermée
print(total)        # ← l'erreur est signalée ICI

3. Équilibrez parenthèses et guillemets

Comptez ( et ), [ et ], " et ". Un éditeur avec coloration syntaxique les apparie visuellement.

4. Distinguez affectation et comparaison

if statut == "actif":   # ✅ == pour comparer (= sert à affecter)
    ...

Comment prevenir cette erreur

- **Utilisez un éditeur avec coloration syntaxique** et appariement des parenthèses. - **Activez un linter** (`ruff`, `pylint`) qui signale ces erreurs avant l'exécution. - Si vous lisez un vieux tutoriel, vérifiez qu'il vise **Python 3** (le `print` est une fonction). - Référence : [docs.python.org — SyntaxError](https://docs.python.org/fr/3/library/exceptions.html#SyntaxError).

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

Pourquoi l'erreur pointe-t-elle une ligne qui me paraît correcte ?
Parce qu'une parenthèse ou un guillemet non fermé à la ligne précédente n'est détecté que sur la ligne suivante. Réflexe : quand la ligne signalée semble juste, **examinez la ligne juste au-dessus**.
`SyntaxError: invalid syntax` sur un `print "bonjour"` ?
C'est de la syntaxe Python 2. En Python 3, `print` est une fonction : écrivez `print("bonjour")`.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.