Les chaînes de caractères en Python

@joekakone

Joseph Konka @joekakone

03/03/2026 · 11 min

Maîtrisez la manipulation de texte en Python : immuabilité des chaînes, méthodes de transformation (upper, lower, title), découpage et jointure (split, join), nettoyage (strip) et prédicats de classification (isdigit, isalpha).

Les chaînes de caractères en langage Python#

Le traitement de données textuelles (fichiers logs, requêtes web, messages utilisateurs, transcriptions NLP) est l'un des domaines d'excellence de Python.

En Python 3, toute chaîne de caractères (str) est une séquence immuable de points de code Unicode. Cela signifie qu'elle supporte nativement l'intégralité des alphabets mondiaux (latin, arabe, cyrillique, kanji, émojis) sans aucune configuration complexe.


1. Déclaration et Immuabilité#

Une chaîne peut être délimitée par des apostrophes simples '...', des guillemets doubles "..." ou des triples guillemets """...""" pour les textes multilignes :

simple = 'Python'
double = "Data Science"
multiligne = """Ceci est un texte
qui s'etend sur plusieurs lignes
en conservant les sauts de ligne."""

L'immuabilité des chaînes#

[!IMPORTANT] Les chaînes de caractères sont strictement immuables. Vous ne pouvez pas modifier un caractère directement :

mot = "Python"
# mot[0] = "J"  -> Lève immédiatement un TypeError !
# Solution : créer une nouvelle chaîne
nouveau_mot = "J" + mot[1:]
print(nouveau_mot)  # "Jython"


2. Le dictionnaire des méthodes de chaînes#

La classe str intègre des dizaines de méthodes natives hautement optimisées :

A. Nettoyage et suppression d'espaces#

  • .strip() : supprime les espaces, tabulations et sauts de ligne aux deux extrémités.
  • .lstrip() : nettoie uniquement l'extrémité gauche (leading).
  • .rstrip() : nettoie uniquement l'extrémité droite (trailing).
saisie = "   alice@algojungle.com \n\t"
propre = saisie.strip()
print(f"'{propre}'")  # 'alice@algojungle.com'

B. Changement de casse#

titre = "le langage python pour la data"

print(titre.upper())       # 'LE LANGAGE PYTHON POUR LA DATA'
print(titre.lower())       # 'le langage python pour la data'
print(titre.capitalize())  # 'Le langage python pour la data'
print(titre.title())       # 'Le Langage Python Pour La Data'
print("PyThOn".swapcase()) # 'pYtHoN'

C. Découpage et Jointure : split() et join()#

Le duo le plus utilisé en analyse textuelle : - chaine.split(separateur) : découpe une chaîne en une liste de sous-chaînes. - separateur.join(liste) : assemble une liste de sous-chaînes en une seule chaîne.

# 1. Découpage d'une ligne CSV
ligne_csv = "101;Alice;Data Science;16.5"
colonnes = ligne_csv.split(";")
print("Colonnes extraites :", colonnes)
# ['101', 'Alice', 'Data Science', '16.5']

# 2. Jointure avec un tiret
mots = ["Machine", "Learning", "Ingenieur"]
slug = "-".join(mots).lower()
print("Slug URL :", slug)  # 'machine-learning-ingenieur'

D. Remplacement et Recherche#

phrase = "Le chat noir dort sur le tapis noir."

# Remplacement de sous-chaînes
modifie = phrase.replace("noir", "blanc")
print(modifie)  # 'Le chat blanc dort sur le tapis blanc.'

# Recherche de position (find renvoie -1 si absent, index lève ValueError)
print("Position du mot 'chat' :", phrase.find("chat"))   # 3
print("Compte de 'noir'       :", phrase.count("noir"))  # 2

# Vérification des préfixes et suffixes
print(phrase.startswith("Le"))     # True
print(phrase.endswith("noir."))   # True

3. Prédicats de classification de caractères#

Ces méthodes renvoient un booléen (True/False) et permettent de valider le format d'une chaîne :

Méthode Condition requise pour être True Exemple positif Exemple négatif
.isdigit() Contient uniquement des chiffres décimaux 0-9 "2026" "20.5"
.isalpha() Contient uniquement des lettres alphabétiques "AlgoJungle" "Algo_2026"
.isalnum() Contient uniquement des lettres et/ou des chiffres "Agent007" "Agent-007"
.isspace() Contient uniquement des espaces blancs (, \t, \n) " \t " " a "
.islower() Toutes les lettres sont en minuscules "python" "Python"
.isupper() Toutes les lettres sont en majuscules "SQL" "Sql"

4. Mise en pratique : Nettoyeur de texte (Text Preprocessing)#

En traitement du langage naturel (NLP), la première étape consiste à standardiser un texte brut avant l'analyse sémantique :

texte_brut = """
  L'Intelligence Artificielle transforme le monde !
  Python est le langage n°1 des Data Scientists en 2026.
"""

def nettoyer_texte(corpus: str) -> list[str]:
    """Nettoie un texte : passage en minuscules, suppression de ponctuation et tokenisation."""
    # Remplacement des ponctuations gênantes
    ponctuations = "!',?.;:()\""
    texte_epure = corpus
    for p in ponctuations:
        texte_epure = texte_epure.replace(p, " ")

    # Découpage en mots minuscules
    tokens = [mot.lower() for mot in texte_epure.split() if mot.isalnum()]
    return tokens

mots_propres = nettoyer_texte(texte_brut)
print("Tokens normalises :", mots_propres)
print(f"Vocabulaire unique : {len(set(mots_propres))} mots distincts.")

5. Défi d'application#

Écrivez une fonction formater_nom_fichier(titre_article: str) -> str qui prend en entrée un titre quelconque (ex: "Découvrez les Listes en Python 3 !"), remplace les espaces par des tirets -, supprime les caractères non alphanumériques, et retourne un nom de fichier propre en minuscules se terminant par .html (ex: "decouvrez-les-listes-en-python-3.html").

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue