Manipuler les chaînes en Python : guide complet
Les bases des chaînes en Python
Les chaînes en Python sont un type de données fondamental pour travailler avec des informations textuelles. Comprendre leur fonctionnement est essentiel pour une programmation efficace.
Les chaînes comme objets de type str
En Python, les chaînes sont des objets du type intégré str. Elles représentent des séquences de caractères Unicode. Chaque chaîne prend en charge de nombreuses méthodes intégrées pour le traitement du texte. Les chaînes permettent d'accéder à des caractères individuels par index. Elles permettent également d'effectuer des opérations de comparaison et de tri.
text = "Python"
print(type(text)) # <class 'str'>
print(len(text)) # 6
Le principe d'immutabilité des chaînes
Les chaînes en Python sont des objets immuables. Cela signifie que toute opération de transformation crée une nouvelle chaîne. La chaîne d'origine reste inchangée. Ce principe garantit la sécurité des données et la prévisibilité du code.
original = "bonjour"
modified = original.upper()
print(original) # 'bonjour' - inchangée
print(modified) # 'BONJOUR' - nouvelle chaîne
Différentes façons de créer des chaînes
Python offre plusieurs façons de créer des chaînes :
- Guillemets simples pour les chaînes simples
- Guillemets doubles pour les chaînes contenant des apostrophes
- Guillemets triples pour le texte multiligne
- Raw-strings pour échapper les caractères spéciaux
simple = 'chaîne simple'
double = "chaîne avec un 'apostrophe'"
multiligne = """Première ligne
Deuxième ligne
Troisième ligne"""
raw = r"chemin\vers\fichier"
Indexation et utilisation des slices
Accéder aux caractères d'une chaîne
Chaque caractère d'une chaîne possède un index. L'indexation commence à zéro. Python prend en charge l'indexation positive et négative.
text = "Python"
print(text[0]) # 'P' - premier caractère
print(text[5]) # 'n' - dernier caractère
print(text[-1]) # 'n' - dernier via index négatif
print(text[-6]) # 'P' - premier via index négatif
Créer des slices de chaînes
Les slices permettent d'extraire des sous-chaînes. La syntaxe est : chaîne[début:fin:pas]. L'index de début est inclus, celui de fin est exclu.
text = "Python Programming"
print(text[1:4]) # 'yth'
print(text[:6]) # 'Python'
print(text[7:]) # 'Programming'
print(text[::2]) # 'Pto rgamn' - un caractère sur deux
print(text[::-1]) # 'gnimmargorP nohtyP' - inversion de la chaîne
Utilisation pratique de l'indexation négative
L'indexation négative simplifie le travail avec la fin d'une chaîne. Elle est particulièrement utile pour traiter des fichiers et des données de longueur variable.
fichier = "document.pdf"
extension = fichier[-4:] # '.pdf'
nom_partie = fichier[:-4] # 'document'
Méthodes de recherche dans les chaînes
Méthodes de recherche de base
La méthode find() retourne l'index de la première occurrence d'une sous-chaîne. Si la sous-chaîne n'est pas trouvée, elle retourne -1. La méthode rfind() effectue la recherche depuis la fin de la chaîne.
text = "banane programmation"
print(text.find("ane")) # 1
print(text.find("python")) # -1 (non trouvé)
print(text.rfind("ane")) # 3
print(text.find("a", 2)) # 3 (recherche à partir de la position 2)
Méthodes de recherche strictes avec exceptions
Les méthodes index() et rindex() fonctionnent comme find(). Cependant, elles lèvent une exception ValueError si la sous-chaîne n'est pas trouvée.
text = "banane"
print(text.index("n")) # 2
# print(text.index("z")) # ValueError: substring not found