Numérique et Sciences Informatiques > Représentation des Données : Types et Encodage > Structures de Données Élémentaires > Chaînes de caractères (manipulation, encodage)
Chaînes de caractères : Manipulation et Encodage
Explorez la manipulation et l'encodage des chaînes de caractères, une notion fondamentale en NSI. Découvrez les opérations courantes, les méthodes d'encodage et les pièges à éviter.
Introduction aux chaînes de caractères
Une chaîne de caractères, en informatique, est une séquence ordonnée de caractères. Ces caractères peuvent être des lettres (majuscules ou minuscules), des chiffres, des symboles de ponctuation ou d'autres symboles spéciaux. En Python, par exemple, les chaînes de caractères sont immuables, ce qui signifie qu'une fois créée, on ne peut pas modifier directement un caractère à l'intérieur de la chaîne. On doit créer une nouvelle chaîne si on veut changer quelque chose. Les chaînes de caractères sont essentielles pour représenter et manipuler du texte dans les programmes.
Manipulation des chaînes de caractères
De nombreuses opérations permettent de manipuler les chaînes de caractères. Voici quelques exemples courants:
Exemple concret en Python :
+
. Exemple : 'Bonjour' + ' ' + 'le monde'
donne 'Bonjour le monde'
.[]
. Exemple : 'Python'[0:3]
donne 'Pyt'
.find()
. Exemple : 'NSI est cool'.find('cool')
renvoie 7 (l'indice de début de 'cool').replace()
. Exemple : 'Bonjour'.replace('jour', 'soir')
donne 'Bonsoir'
.upper()
) ou en minuscules (lower()
). Exemple : 'Python'.upper()
donne 'PYTHON'
.strip()
). Exemple : ' Bonjour '.strip()
donne 'Bonjour'
.len()
pour connaître le nombre de caractères. Exemple: len('Bonjour')
donne 7.
chaine = ' Python est un langage puissant '
chaine_modifiee = chaine.strip().upper().replace('PUISSANT', 'GÉNIAL')
print(chaine_modifiee) # Affiche: PYTHON EST UN LANGAGE GÉNIAL
Encodage des chaînes de caractères
L'encodage consiste à représenter les caractères d'une chaîne sous forme de nombres binaires, compréhensibles par l'ordinateur. Différents standards d'encodage existent:
Importance de l'encodage:
Choisir le bon encodage est crucial pour éviter des problèmes d'affichage de caractères. Si un fichier texte est encodé en UTF-8 et que l'application qui le lit suppose qu'il est en ASCII, les caractères accentués risquent d'être mal interprétés et affichés sous forme de symboles étranges.
Exemple: Le caractère 'é' peut être représenté différemment selon l'encodage. En UTF-8, il est codé sur 2 octets, tandis qu'en ISO-8859-1, il est codé sur un seul octet.
Exemple de changement d'encodage en Python
En Python, on peut convertir une chaîne d'un encodage à un autre en utilisant les méthodes encode()
et decode()
.
chaine = 'Ceci est une chaîne avec des accents : éàç'.encode('utf-8')
print(chaine)
chaine_decodee = chaine.decode('utf-8')
print(chaine_decodee)
Dans cet exemple, on encode la chaîne en UTF-8 puis on la décode pour revenir à la chaîne originale. Si on essaie de la décoder avec un encodage incorrect, on obtiendra une erreur ou des caractères incorrects.
Pièges courants et bonnes pratiques
Ce qu'il faut retenir
encode()
et decode()
pour changer l'encodage.
FAQ
-
Quelle est la différence entre ASCII et UTF-8?
ASCII est un encodage limité à 128 caractères, tandis que UTF-8 peut représenter tous les caractères Unicode, ce qui le rend compatible avec la plupart des langues. -
Pourquoi est-il important de connaître l'encodage d'un fichier texte?
Si vous ne connaissez pas l'encodage, vous risquez d'afficher des caractères incorrects ou de rencontrer des erreurs lors de la lecture du fichier. L'application que vous utilisez doit interpréter correctement les bytes pour afficher le texte comme l'auteur l'a écrit. -
Comment convertir une chaîne de caractères en majuscules en Python?
Utilisez la méthodeupper()
sur la chaîne. Par exemple:'bonjour'.upper()
renvoie'BONJOUR'
.