EOL while scanning string literal
Python
Erreur courante
Explication
L'erreur `SyntaxError: EOL while scanning string literal` (« fin de ligne pendant l'analyse d'une chaîne ») survient quand une chaîne n'est **pas fermée avant la fin de la ligne** : guillemet fermant manquant, guillemets mal appariés, ou — piège fréquent en français — une **apostrophe** à l'intérieur d'une chaîne en guillemets simples.
```python
message = "Bonjour # le guillemet fermant manque
# SyntaxError: EOL while scanning string literal
```
Causes courantes
- **Guillemet fermant manquant**. - **Guillemets mal appariés** (`"texte'`). - **Apostrophe française** dans une chaîne en guillemets simples : `'l'erreur'` ferme la chaîne trop tôt. - **Chaîne sur plusieurs lignes** sans triple guillemet.
1. Fermez la chaîne
message = "Bonjour" # ✅
2. Gérez les apostrophes avec des guillemets doubles
texte = "l'erreur a été corrigée" # ✅ guillemets doubles
texte = 'l\'erreur a été corrigée' # ou échappez l'apostrophe
3. Pour une chaîne multiligne, utilisez les triples guillemets
paragraphe = """Première ligne
Deuxième ligne"""
Comment prevenir cette erreur
- **Privilégiez les guillemets doubles** en français (à cause des apostrophes).
- **Utilisez un éditeur** avec coloration syntaxique : une chaîne non fermée se voit immédiatement.
- Pour le texte multiligne, pensez aux triples guillemets (`"""`).
- Référence : [docs.python.org — Chaînes](https://docs.python.org/fr/3/tutorial/introduction.html#strings).
Besoin d'aide sur votre projet ?
Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.
Nous contacterQuestions frequentes
Pourquoi `'aujourd'hui'` provoque-t-il l'erreur ?
Parce que l'apostrophe de « aujourd'hui » est interprétée comme le guillemet fermant de la chaîne. Utilisez des guillemets doubles : `"aujourd'hui"`, ou échappez : `'aujourd\'hui'`.
Comment écrire une chaîne sur plusieurs lignes ?
Utilisez les triples guillemets `"""..."""` (ou `'''...'''`), qui autorisent les retours à la ligne au sein de la chaîne.