Menu
Français

Chaînes Python : f-strings, découpage et toutes les méthodes que tu utiliseras

Travailler avec du texte en Python — créer des chaînes, utiliser des f-strings, découper, et les méthodes du quotidien comme split, join, replace et strip.

Du texte, mais avec des méthodes

Une chaîne Python est une séquence de caractères, et tu utiliseras les chaînes plus que n'importe quel autre type. Chaque nom, étiquette, message, URL, chemin de fichier et réponse d'API vit dans une chaîne à un moment donné.

Créez-en une avec des guillemets — simples, doubles ou triples :

main.py
Output
Click Run to see the output here.

Les guillemets simples et doubles sont interchangeables. Utilise celui qui t'évite d'avoir à échapper un caractère. "don't" est propre ; 'don\'t' a besoin d'une barre oblique inverse.

Les chaînes sont immuables. Une fois qu'une chaîne existe, tu ne peux pas en modifier un caractère sur place. Chaque opération qui semble changer une chaîne renvoie en fait une nouvelle. C'est pour ça que tu écriras text = text.upper() plutôt que juste text.upper() — sans la réaffectation, la nouvelle chaîne en majuscules serait jetée.

Joindre et répéter

Deux opérateurs font la plupart de la combinaison de chaînes dont tu auras besoin :

main.py
Output
Click Run to see the output here.

+ concatène les chaînes. * répète une chaîne. Les deux renvoient une nouvelle chaîne.

Concaténer beaucoup de morceaux avec + devient vite moche. Quand tu mélanges des valeurs de types différents dans un message, utilise plutôt des f-strings — voir la section suivante.

f-strings : la façon dont tu formateras d'habitude

Mets un f devant le guillemet d'ouverture et la chaîne devient un template. Tout ce qui se trouve dans {...} est remplacé par la valeur de cette expression :

main.py
Output
Click Run to see the output here.

Tu peux mettre n'importe quelle expression entre les accolades — variables, arithmétique, appels de méthode, appels de fonction. Garde-les simples, cependant ; si tu es tenté de caser un calcul de trois lignes dans {...}, calcule-le d'abord dans une variable nommée.

Les f-strings prennent aussi en charge des spécificateurs de format après un deux-points, pour contrôler le formatage des nombres, le remplissage et l'alignement :

main.py
Output
Click Run to see the output here.

Ces specs de format sont les mêmes que celles utilisées par str.format() et valent une lecture rapide une fois que tu es à l'aise avec les bases. Tu n'en as pas besoin pour du code de premier jour.

Découpage : prends un morceau

Les chaînes sont indexables comme des séquences. Chaque caractère a une position indexée à partir de zéro, et tu peux attraper un caractère ou une plage :

main.py
Output
Click Run to see the output here.

Le motif [start:stop:step] se retrouve aussi dans les listes et autres séquences, donc investir quelques minutes pour l'intérioriser paie partout.

Deux choses à souligner :

  • L'indice stop est exclusif : word[0:2] inclut les indices 0 et 1, pas 2.
  • Les indices négatifs comptent depuis la fin : -1 est le dernier caractère, -2 l'avant-dernier, et ainsi de suite.

Comment inverser une chaîne

Les chaînes n'ont pas de méthode .reverse() — elles sont immuables — mais le découpage avec un pas de -1 fait le travail en une ligne :

main.py
Output
Click Run to see the output here.

word[::-1] se lit « du début à la fin, pas à reculons de 1 ». Le résultat est une toute nouvelle chaîne ; l'original reste intact. Si tu as besoin d'itérer les caractères à l'envers sans matérialiser une nouvelle chaîne, reversed(word) renvoie un itérateur paresseux.

Comment vérifier la longueur d'une chaîne

len(text) renvoie le nombre de caractères :

main.py
Output
Click Run to see the output here.

Note que len compte les points de code Unicode, pas les octets. len("café") vaut 4, pas 5, même si l'encodage UTF-8 prend plus d'octets — c'est généralement ce que tu veux.

Comment vérifier si une chaîne contient une sous-chaîne

L'opérateur in est le test idiomatique, et il se lit comme de l'anglais :

main.py
Output
Click Run to see the output here.

Pour des tests insensibles à la casse, normalise les deux côtés d'abord :

main.py
Output
Click Run to see the output here.

Si tu as besoin de la position, pas juste d'un oui/non, utilise .find() — elle renvoie l'indice ou -1 si la sous-chaîne n'est pas là.

Méthodes de chaîne courantes

Les chaînes ont des dizaines de méthodes. Tu utiliseras cette poignée sans arrêt :

main.py
Output
Click Run to see the output here.

Découper et joindre :

main.py
Output
Click Run to see the output here.

.split(separator) transforme une chaîne en liste. separator.join(list_of_strings) la recolle. Ces deux méthodes portent une part disproportionnée du travail réel sur les chaînes.

Encore une paire utile :

main.py
Output
Click Run to see the output here.

C'est un parseur pour une entrée de config d'une seule ligne, écrit en trois lignes. Petites chaînes, grand effet de levier.

Vérifier ce qu'il y a à l'intérieur

Plusieurs méthodes renvoient des booléens, utiles dans des conditions if :

main.py
Output
Click Run to see the output here.

Utilise-les avec parcimonie — elles ne gèrent pas les bizarreries Unicode de toutes les façons que tu pourrais attendre. Pour tout ce qui dépasse l'ASCII, appuie-toi sur le module regex ou le module unicodedata.

Échapper les caractères spéciaux

Certains caractères ont besoin d'une barre oblique inverse pour apparaître à l'intérieur d'une chaîne :

main.py
Output
Click Run to see the output here.

Si tu écris des chemins Windows ou des regex, les chaînes brutes (raw strings) te facilitent la vie. Mets un r devant le guillemet et les barres obliques inverses cessent d'être des caractères d'échappement :

main.py
Output
Click Run to see the output here.

Les chaînes sont partout, alors garde ça lisible

Trois habitudes qui empêchent le code à base de chaînes de tourner à la soupe :

  1. Utilise les f-strings pour l'interpolation. N'enchaîne pas les + à travers plusieurs types.
  2. Réaffecte quand tu « mutes ». text = text.strip(), pas text.strip() tout seul.
  3. Tends la main vers .split() et .join() avant d'écrire des boucles manuelles pour parser ou assembler du texte. Elles sont plus rapides, plus claires et plus difficiles à rater.

Ensuite : les f-strings en profondeur — l'outil de formatage que tu as déjà vu une poignée de fois, plus les specs de nombres et de dates qui les rendent utiles à maîtriser.

Questions fréquentes

Qu'est-ce qu'une f-string en Python ?

Une f-string est un littéral de chaîne préfixé par f, où tout ce qui se trouve à l'intérieur de {...} est remplacé par la valeur de cette expression. Exemple : f"Hello, {name}!" insère la valeur actuelle de name dans la chaîne à l'exécution.

Comment inverser une chaîne en Python ?

Utilise le découpage avec un pas de -1 : reversed_text = original[::-1]. Ça renvoie une nouvelle chaîne faite des mêmes caractères dans l'ordre inverse. La chaîne d'origine reste intacte car les chaînes en Python sont immuables.

Comment découper une chaîne en Python ?

Appelle .split() sur la chaîne. Sans argument, elle découpe sur n'importe quel espace blanc : "a b c".split() renvoie ['a', 'b', 'c']. Tu peux passer un séparateur précis : "a,b,c".split(",") renvoie ['a', 'b', 'c'].

Les chaînes Python sont-elles mutables ?

Non. Les chaînes sont immuables — une fois qu'une chaîne existe, tu ne peux modifier aucun de ses caractères sur place. Chaque méthode qui « change » une chaîne renvoie en fait une nouvelle. C'est pour ça que tu vois des motifs comme text = text.strip() — tu réaffectes la variable à la nouvelle chaîne.

Comment concaténer des chaînes en Python ?

Utilise + pour joindre deux chaînes : "hello" + " " + "world". Pour combiner une valeur dans une phrase, préfère une f-string : f"Hello, {name}". Pour joindre plusieurs morceaux depuis une liste, utilise separator.join(pieces) — c'est plus rapide et plus lisible que des + enchaînés.

Comment vérifier la longueur d'une chaîne en Python ?

Appelle la fonction intégrée len(text). Elle renvoie le nombre de caractères (points de code Unicode), donc len("café") vaut 4. Pour la longueur en octets, encode d'abord : len(text.encode("utf-8")).

Apprendre à coder avec Coddy

COMMENCER