OUJOOD.COM
Qu'est-ce qu'une chaîne de caractères en Python ?
En Python, une chaîne de caractères (ou string) est une séquence de caractères Unicode. Concrètement, c'est le type de données qu'on utilise dès qu'on manipule du texte : un nom, une phrase, un message d'erreur, une URL. Python encode les strings en UTF-8, ce qui signifie que les accents, les idéogrammes et les emojis fonctionnent sans configuration particulière.
Contrairement à des langages comme C, Python ne fait pas de distinction entre un caractère et une chaîne : un caractère est simplement une chaîne de longueur 1. Pour afficher du texte, on utilise print(). Les guillemets simples et doubles sont interchangeables :
# Les deux syntaxes donnent le même résultat print("Bonjour") # Guillemets doubles print('Bonjour') # Guillemets simples
Affecter une chaîne à une variable
On assigne une chaîne à une variable avec l'opérateur =. Python détecte automatiquement le type str — pas besoin de le déclarer. Pour vérifier le type d'une variable, on utilise la fonction type().
# Affectation d'une chaîne à une variable a = "Bonjour" print(a) # Affiche : Bonjour print(type(a)) # Affiche : <class 'str'>
Les chaînes multilignes
Pour écrire une chaîne sur plusieurs lignes, Python propose la syntaxe des triple guillemets ("""...""" ou '''...'''). Les sauts de ligne sont conservés tels quels. Cette syntaxe est fréquemment utilisée pour les docstrings, les blocs SQL ou les templates.
# Triple guillemets doubles a = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidunt.""" print(a) # Triple guillemets simples — même comportement b = '''Première ligne, deuxième ligne, troisième ligne.''' print(b)
Accéder à un caractère par son index
Une chaîne Python est une séquence ordonnée : chaque caractère occupe une position précise, accessible via son index entre crochets []. L'index commence à 0. Python accepte aussi les index négatifs : -1 désigne le dernier caractère, -2 l'avant-dernier, etc.
# Accès par index positif (commence à 0) a = "Bonjour, le monde !" print(a[0]) # Affiche : B print(a[2]) # Affiche : n # Index négatif : compte depuis la fin print(a[-1]) # Affiche : ! (dernier caractère) print(a[-3]) # Affiche : d
Parcourir une chaîne avec une boucle for
Puisqu'une chaîne est une séquence, on peut la parcourir lettre par lettre avec une boucle for. C'est la façon la plus lisible d'itérer sur chaque caractère. Si on a besoin de l'index en même temps, enumerate() est l'outil adapté.
# Parcours simple avec compteur manuel i = 0 for x in "Wagon": print("la lettre en position " + str(i) + " est : " + x) i = i + 1 # Méthode recommandée : enumerate() donne l'index et la valeur for i, x in enumerate("Wagon"): print(f"Position {i} → caractère : {x}")
Longueur d'une chaîne avec len()
La fonction len() retourne le nombre total de caractères d'une chaîne, espaces et ponctuation inclus. Elle sert souvent à valider une saisie utilisateur ou à contrôler une boucle.
# len() compte tous les caractères, espaces compris a = "Bonjour, le monde !" longueur = len(a) print("La chaîne contient " + str(longueur) + " caractères") # Utilisation dans une condition if len(a) > 10: print("La chaîne est longue")
Tester la présence d'une sous-chaîne : in et not in
Les opérateurs in et not in permettent de vérifier si une sous-chaîne est présente dans une chaîne. Ils retournent un booléen (True ou False) et sont sensibles à la casse.
# 'in' : True si la sous-chaîne est présente txt = "Les meilleures choses de la vie sont gratuites !" print("vie" in txt) # True print("cher" in txt) # False if "vie" in txt: print("'vie' est présent dans le texte.") # 'not in' : True si la sous-chaîne est absente print("cher" not in txt) # True if "cher" not in txt: print("'cher' n'existe pas dans le texte.")
Le slicing : découper une chaîne
Le slicing extrait une portion d'une chaîne à partir d'une plage d'index. La syntaxe est chaine[debut:fin:pas]. L'index de fin est exclu du résultat. Omettre un index revient à utiliser le début ou la fin de la chaîne par défaut.
txt = "Les meilleures choses de la vie sont gratuites !" # [debut:fin] — la borne fin est exclue print(txt[4:14]) # meilleures # Depuis le début print(txt[:22]) # Les meilleures choses # Jusqu'à la fin print(txt[26:]) # la vie sont gratuites ! # Index négatif print(txt[-10:-1]) # gratuites # Pas (step) : 1 caractère sur 2 print(txt[::2]) # Inverser la chaîne print(txt[::-1])
Méthodes de conversion de casse
Python propose quatre méthodes pour changer la casse d'une chaîne. Elles ne modifient pas la chaîne d'origine — les strings sont immuables en Python — mais retournent une nouvelle chaîne transformée.
txt = "Les meilleures choses de la vie sont gratuites!" # upper() : tout en majuscules print(txt.upper()) # lower() : tout en minuscules print(txt.lower()) # capitalize() : première lettre en majuscule, reste en minuscule print(txt.capitalize()) # title() : chaque mot commence par une majuscule print(txt.title())
Supprimer les espaces avec strip()
strip() supprime les espaces blancs (espaces, tabulations, sauts de ligne) en début et en fin de chaîne. Utile pour nettoyer une saisie utilisateur avant traitement.
txt = " Bonjour le monde ! " # strip() : supprime des deux côtés print(txt.strip()) # "Bonjour le monde !" # lstrip() : supprime uniquement à gauche print(txt.lstrip()) # "Bonjour le monde ! " # rstrip() : supprime uniquement à droite print(txt.rstrip()) # " Bonjour le monde !"
Remplacer une sous-chaîne avec replace()
replace(ancien, nouveau) remplace toutes les occurrences d'une sous-chaîne. Un troisième argument optionnel limite le nombre de remplacements effectués.
txt = "Les meilleures choses de la vie sont gratuites!" # Remplace toutes les occurrences print(txt.replace("meilleures", "plus belles")) # Avec limite : remplace seulement la 1ère occurrence txt2 = "aaabbbaaaccc" print(txt2.replace("aaa", "XXX", 1)) # XXXbbbaaaccc
Découper et reconstituer : split() et join()
split() divise une chaîne en liste selon un séparateur. join() fait l'opération inverse : il fusionne une liste de chaînes en une seule, avec un séparateur choisi.
txt = "Les meilleures choses de la vie sont gratuites!" # split() : divise selon un séparateur mots = txt.split(" ") print(mots) # ['Les', 'meilleures', 'choses', 'de', 'la', 'vie', 'sont', 'gratuites!'] # join() : reconstitue la chaîne avec un nouveau séparateur reconstitue = "-".join(mots) print(reconstitue) # Les-meilleures-choses-de-la-vie-sont-gratuites!
Concaténer des chaînes
L'opérateur + assemble deux chaînes en une seule. Attention : on ne peut pas additionner directement une chaîne et un entier — il faut d'abord convertir l'entier avec str(). L'opérateur * répète une chaîne un nombre de fois donné.
# Concaténation avec + a = "Les meilleures choses" b = "de la vie sont gratuites!" c = a + " " + b print(c) # Répétition avec * separateur = "-" * 30 print(separateur) # 30 tirets
Insérer des variables dans une chaîne : f-strings et format()
La méthode recommandée depuis Python 3.6 est le f-string : on préfixe la chaîne avec f et on place les variables directement entre accolades. C'est plus lisible et plus rapide que les techniques précédentes. L'ancienne méthode format() reste fonctionnelle sur les versions antérieures.
# f-string : syntaxe recommandée depuis Python 3.6 age = 36 nom = "Alice" txt = f"Mon amie {nom} a {age} ans." print(txt) # Mon amie Alice a 36 ans. # Les f-strings acceptent des expressions Python prix = 49.95 quantite = 3 print(f"Total : {prix * quantite:.2f} €") # Total : 149.85 € # Ancienne méthode : format() avec placeholders {} article = 567 monOrder = "Je veux {} pièces de l'article {} pour {} euros." print(monOrder.format(quantite, article, prix)) # Avec index pour contrôler l'ordre des arguments monOrder2 = "Je veux payer {2} euros pour {0} pièces de l'article {1}." print(monOrder2.format(quantite, article, prix))
Les caractères d'échappement
Un caractère d'échappement commence par un antislash \ et permet d'insérer des caractères spéciaux dans une chaîne : guillemets, saut de ligne, tabulation, etc.
# \" : guillemet double dans une chaîne délimitée par des guillemets doubles txt = "Nous sommes les soi-disant \"Militants\" pour la nature." print(txt) # \n : saut de ligne print("Ligne 1\nLigne 2\nLigne 3") # \t : tabulation print("Colonne 1\tColonne 2\tColonne 3") # \\ : antislash littéral print("Chemin Windows : C:\\Users\\nom\\Documents")
Méthodes de recherche : find(), count(), startswith(), endswith()
Ces méthodes permettent de localiser une sous-chaîne, de compter ses occurrences ou de vérifier par quoi une chaîne commence ou se termine.
txt = "Les meilleures choses de la vie sont gratuites!" # find() : index de la 1ère occurrence, -1 si absent print(txt.find("vie")) # 28 print(txt.find("argent")) # -1 # count() : nombre d'occurrences print(txt.count("es")) # startswith() et endswith() print(txt.startswith("Les")) # True print(txt.endswith("gratuites!")) # True # Vérifier la nature des caractères print("12345".isdigit()) # True print("Python".isalpha()) # True print(" ".isspace()) # True
Par carabde | Mis à jour le 24 avril 2026