OUJOOD.COM
Qu'est-ce qu'une chaîne de caractères Python (string) ?
En Python, une chaîne de caractères (ou string) est un type de données fondamental permettant de stocker et manipuler du texte. Techniquement, il s'agit d'une séquence immuable d'octets encodés en Unicode (UTF-8), ce qui permet de gérer nativement les caractères accentués, les idéogrammes et les emojis. Contrairement à des langages comme C ou Java, Python ne distingue pas le type "caractère" du type "chaîne" : un caractère est simplement une chaîne de longueur 1.
On peut afficher une chaîne littérale avec la fonction print(). Les guillemets simples et doubles sont parfaitement interchangeables :
# Les deux syntaxes sont équivalentes en Python print("Bonjour") # Guillemets doubles print('Bonjour') # Guillemets simples - même résultat
Assigner une chaîne de caractères à une variable Python
L'affectation d'une chaîne de caractères à une variable Python s'effectue avec l'opérateur =. Python est un langage à typage dynamique : il infère automatiquement le type str sans déclaration explicite. Utilisez la fonction intégrée type() pour vérifier le type d'une variable.
# Affectation d'une chaîne à une variable a = "Bonjour" print(a) # Affiche : Bonjour print(type(a)) # Affiche : <class 'str'>
Chaînes de caractères multilignes en Python
Pour créer une chaîne multiligne, Python propose la syntaxe des triple guillemets ("""...""" ou '''...'''). Cette approche est particulièrement utile pour les docstrings, les templates HTML ou les requêtes SQL longues. Les sauts de ligne sont préservés tels quels dans la chaîne.
# Triple guillemets doubles pour chaîne multiligne a = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidunt ut labore et dolore magna aliqua.""" print(a) # Avec triple guillemets simples - même résultat b = '''Première ligne, deuxième ligne, troisième ligne.''' print(b)
Les chaînes de caractères sont des séquences indexées
En Python, les chaînes de caractères sont des séquences ordonnées (tableaux d'octets Unicode). Chaque caractère est accessible via son index numérique entre crochets []. L'indexation commence à 0 pour le premier caractère. Python supporte également l'indexation négative : -1 désigne le dernier caractère.
# Accès à un caractère par son index positif a = "Bonjour, le monde !" print(a[0]) # Affiche : B (premier caractère, index 0) print(a[2]) # Affiche : n (troisième caractère, index 2) # Indexation négative : compte depuis la fin print(a[-1]) # Affiche : ! (dernier caractère) print(a[-3]) # Affiche : d (3e caractère en partant de la fin)
Parcourir une chaîne avec une boucle for
Puisque les strings sont des séquences, on peut les parcourir caractère par caractère avec une boucle for. C'est la méthode la plus pythonique pour itérer sur chaque élément. La fonction enumerate() permet d'obtenir simultanément l'index et la valeur.
# Méthode classique avec compteur manuel i = 0 for x in "Wagon": print("la lettre en position " + str(i) + " est : " + x) i = i + 1 # Méthode pythonique recommandée avec enumerate() for i, x in enumerate("Wagon"): print(f"Position {i} → caractère : {x}")
Longueur d'une chaîne Python : la fonction len()
La fonction intégrée len() retourne le nombre total de caractères d'une chaîne, espaces et caractères spéciaux inclus. Elle est essentielle pour valider des entrées utilisateur, tronquer des textes ou contrôler des boucles.
# len() compte tous les caractères, y compris les espaces et la ponctuation a = "Bonjour, le monde !" longueur = len(a) print("La chaîne \"" + a + "\" contient " + str(longueur) + " caractères") # Sortie : La chaîne "Bonjour, le monde !" contient 19 caractères # Vérification : utiliser len() dans une condition if len(a) > 10: print("La chaîne est longue")
Vérifier la présence d'une sous-chaîne avec in et not in
Python propose deux opérateurs booléens pour tester l'appartenance d'une sous-chaîne : in (retourne True si la valeur est présente) et not in (retourne True si la valeur est absente). Ces opérateurs sont sensibles à la casse.
# Opérateur 'in' : teste la présence d'une sous-chaîne txt = "Les meilleures choses de la vie sont gratuites !" print("vie" in txt) # Affiche : True print("cher" in txt) # Affiche : False # Utilisation dans une instruction if if "vie" in txt: print("Oui, 'vie' est présent dans le texte.") # Opérateur 'not in' : teste l'absence d'une sous-chaîne print("cher" not in txt) # Affiche : True (car 'cher' est absent) if "cher" not in txt: print("'cher' n'existe pas dans le texte.")
Slicing Python : découpage de chaînes de caractères
Le slicing (découpage en tranches) est une fonctionnalité puissante de Python permettant d'extraire une sous-chaîne à partir d'une plage d'index. La syntaxe est chaine[debut:fin:pas]. L'index de fin est exclu. L'omission d'un index utilise les valeurs par défaut (début ou fin de la chaîne).
txt = "Les meilleures choses de la vie sont gratuites !" # Slicing de base : [debut:fin] (fin exclue) print(txt[4:14]) # Affiche : meilleures # Slicing depuis le début (index 0 implicite) print(txt[:22]) # Affiche : Les meilleures choses # Slicing jusqu'à la fin print(txt[26:]) # Affiche : la vie sont gratuites ! # Indexation négative : depuis la fin de la chaîne print(txt[-10:-1]) # Affiche : gratuites # Slicing avec pas (step) : récupère 1 caractère sur 2 print(txt[::2]) # Affiche chaque 2e caractère # Inverser une chaîne avec slicing print(txt[::-1]) # Affiche la chaîne à l'envers
Méthodes intégrées de manipulation des strings Python
Python dispose d'un riche ensemble de méthodes intégrées pour manipuler les chaînes de caractères. Ces méthodes ne modifient pas la chaîne originale (les strings sont immuables), mais retournent une nouvelle chaîne transformée.
Conversion de casse : upper(), lower(), capitalize(), title()
Python propose plusieurs méthodes pour convertir la casse d'une chaîne. upper() met tout en majuscules, lower() en minuscules, capitalize() met uniquement la première lettre en majuscule, et title() capitalise chaque mot.
txt = "Les meilleures choses de la vie sont gratuites!" # upper() : convertit tous les caractères en MAJUSCULES print(txt.upper()) # LES MEILLEURES CHOSES DE LA VIE SONT GRATUITES! # lower() : convertit tous les caractères en minuscules print(txt.lower()) # les meilleures choses de la vie sont gratuites! # capitalize() : première lettre en majuscule, reste en minuscule print(txt.capitalize()) # Les meilleures choses de la vie sont gratuites! # title() : chaque mot commence par une majuscule print(txt.title()) # Les Meilleures Choses De La Vie Sont Gratuites!
Supprimer les espaces : strip(), lstrip(), rstrip()
La méthode strip() supprime les espaces blancs (espaces, tabulations, sauts de ligne) en début et fin de chaîne — très utile pour nettoyer les entrées utilisateur.
txt = " Bonjour le monde ! " # strip() : supprime les espaces des deux côtés print(txt.strip()) # "Bonjour le monde !" # lstrip() : supprime uniquement à gauche (left) print(txt.lstrip()) # "Bonjour le monde ! " # rstrip() : supprime uniquement à droite (right) print(txt.rstrip()) # " Bonjour le monde !"
Remplacer une sous-chaîne : replace()
La méthode replace(ancien, nouveau) remplace toutes les occurrences d'une sous-chaîne par une autre. Un troisième argument optionnel limite le nombre de remplacements.
txt = "Les meilleures choses de la vie sont gratuites!" # replace(ancien, nouveau) : remplace toutes les occurrences print(txt.replace("meilleures", "plus belles")) # Résultat : Les plus belles choses de la vie sont gratuites! # Avec limite : remplace seulement la 1ère occurrence txt2 = "aaabbbaaaccc" print(txt2.replace("aaa", "XXX", 1)) # XXXbbbaaaccc
Diviser une chaîne : split() et join()
La méthode split(séparateur) découpe une chaîne en une liste de sous-chaînes selon un séparateur. La méthode join() fait l'inverse : elle fusionne une liste en une chaîne.
txt = "Les meilleures choses de la vie sont gratuites!" # split(" ") : divise selon l'espace comme séparateur mots = txt.split(" ") print(mots) # Résultat : ['Les', 'meilleures', 'choses', 'de', 'la', 'vie', 'sont', 'gratuites!'] # join() : l'inverse de split() - reconstitue la chaîne reconstitue = "-".join(mots) print(reconstitue) # Résultat : Les-meilleures-choses-de-la-vie-sont-gratuites!
Concaténation de chaînes Python
La concaténation consiste à assembler plusieurs chaînes en une seule. En Python, l'opérateur + permet de fusionner des chaînes. Attention : on ne peut pas concaténer directement une chaîne avec un entier sans conversion via str().
# Concaténation avec l'opérateur + a = "Les meilleures choses" b = "de la vie sont gratuites!" c = a + " " + b # Ajoute un espace entre les deux chaînes print(c) # Résultat : Les meilleures choses de la vie sont gratuites! # Répétition d'une chaîne avec * separateur = "-" * 30 print(separateur) # Affiche 30 tirets
Formatage des chaînes Python : f-strings et format()
Pour insérer des variables dans une chaîne, Python offre plusieurs techniques. La méthode moderne et recommandée depuis Python 3.6 est le f-string (chaîne formatée). L'ancienne méthode format() reste valide et compatible avec les versions antérieures.
# Méthode recommandée : f-string (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 directement prix = 49.95 quantite = 3 print(f"Total : {prix * quantite:.2f} €") # Total : 149.85 € # Méthode classique : format() avec placeholders {} quantite = 3 article = 567 prix = 49.95 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))
Caractères d'échappement dans les strings Python
Un caractère d'échappement est une séquence spéciale commençant par une barre oblique inversée \, permettant d'insérer des caractères qui seraient autrement illégaux ou impossibles à écrire dans une chaîne. Par exemple, insérer un guillemet double dans une chaîne délimitée par des guillemets doubles.
# \" : guillemet double dans une chaîne avec guillemets doubles txt = "Nous sommes les soi-disant \"Militants\" pour la nature." print(txt) # Nous sommes les soi-disant "Militants" pour la nature. # \' : guillemet simple dans une chaîne avec guillemets simples txt2 = 'C\'est une belle journée.' print(txt2) # \n : saut de ligne print("Ligne 1\nLigne 2\nLigne 3") # \t : tabulation horizontale print("Colonne 1\tColonne 2\tColonne 3") # \\ : barre oblique inversée littérale print("Chemin Windows : C:\\Users\\nom\\Documents")
Méthodes avancées : find(), count(), startswith(), endswith()
Python propose des méthodes de recherche avancées pour localiser des sous-chaînes, compter des occurrences et vérifier les préfixes/suffixes d'une chaîne.
txt = "Les meilleures choses de la vie sont gratuites!" # find() : retourne l'index de la 1ère occurrence (-1 si absent) print(txt.find("vie")) # Affiche : 28 print(txt.find("argent")) # Affiche : -1 (absent) # count() : compte le nombre d'occurrences print(txt.count("es")) # Compte combien de fois "es" apparaît # startswith() et endswith() : vérifient le début et la fin print(txt.startswith("Les")) # True print(txt.endswith("gratuites!")) # True # Vérifier le type de caractères print("12345".isdigit()) # True : que des chiffres print("Python".isalpha()) # True : que des lettres print(" ".isspace()) # True : que des espaces
Par carabde | Mis à jour le 23 février 2026