Numérique et Sciences Informatiques
Chaînes de caractères
Définition
Une "chaîne de caractères" (ou plus simplement "chaîne") désigne une suite quelconque de caractères
représentant du texte. Elle est délimitée par des apostrophes (') ou des guillemets (") et peut être vide. En
langage Python, le type associé aux chaînes est str, défini comme une liste de caractères. Une chaîne est
par conséquent itérable et indiçable ("subscriptable") mais non modifiable une fois définie (non
mutable/muable).
Exemple : ch = "Salut !", ch[0] : 'S', ch[3] : 'u', ch[-1] : '!', ch[-3] : 't'
Encodage des caractères
Depuis la table américaine initiale (table ASCII standard sur 7 bits) de 1960, le développement mondial de
l'informatique a nécessité des normes d'encodage bien plus générales adaptées à toutes les langues.
Pages de code locales
Le peu de mémoire disponible sur les premiers ordinateurs a incité le monde informatique à limiter
l'écriture des caractères à seulement un octet, ce qui ne permet de produire que 256 codes distincts.
Un système de "pages de code" s'est alors imposé, adapté aux pays et aux systèmes d'exploitation, comme
par exemple : ISO/CEI 8859 (ou "latin-1"), 1252 (Windows), 437 et 850 (DOS), MacRoman (Mac OS), …
Caractères "non imprimables" (universels)
Parmi les codes des tables de caractères, il existe un nombre limité de caractères de contrôle de
l'impression, dits "non imprimables", dont le tableau suivant résume les plus courants :
Symbole Nom Description
'\' Échappement Indique qu'il faut considérer le caractère qui suit comme un
caractère spécial
'\r' Retour chariot Retour au début de la ligne d'écriture
'\n' Nouvelle ligne Passage à la ligne suivante d'écriture
'\"' ou '\'' " ou ' Caractère guillemet ou apostrophe dans une ligne de texte (le
caractère ne referme pas la chaîne)
'\0' Fin de chaîne Caractère invisible marquant la fin de la chaîne
'\t' Tabulation Caractère de tabulation (pour un alignement en colonne)
'\\' Anti-slash Caractère barre oblique inverse (\)
Un codage global unifié : l'Unicode
Pour avoir un codage global (international et multi systèmes), la norme Unicode, définie en 1991, supporte
plus de 140 000 caractères dans 150 langues (y compris les symboles emojis).
La norme Unicode possède trois systèmes de codage des caractères :
▪ UTF-8 : format variable de 1 à 4 octets par caractère (encombrement optimisé imposé dans les pages
Web, avec ou sans "BOM" = Byte Order Mark placé au début du fichier, compatible avec ASCII),
▪ UTF-16 : format variable de 2 à 4 octets par caractère,
▪ UTF-32 : 4 octets par caractère (format très encombrant).
Traitement des chaînes avec le langage Python
Dans tous les langages informatiques, les chaînes de caractères constituent un type fondamental de
données, notamment pour la communication homme-machine. C'est pourquoi, il existe énormément de
fonctions et méthodes de traitement associées, dont la page suivante résume l'essentiel.
Fiche ressource © B. NOURRY - A. DEQUAY - 01/09/2025
Numérique et Sciences Informatiques
Affichage de texte (dans la console)
Fonction Description Exemple
print(chaine) Affiche la chaîne de caractères passée en ch1 = "Bonjour"
paramètre. print(ch1)
Par défaut, retourne à la ligne à la fin. Bonjour
print(chaine, end="") Affiche la chaîne sans aller à la ligne. print(ch1, end="")
Bonjour
print(variable) Affiche la chaîne de texte convertie d'une v1 = 5.34
variable (selon son type) print(v1)
5.34
print(ch1, ch2, ...) Affiche des objets de types quelconques print("J'ai", 20, "ans")
séparés par un espace (utilise str). J'ai 20 ans
Concaténation de chaînes et extraction de fragments de chaîne
Opérateur Description Exemple
+ Rejoint deux chaînes de caractères pour ch2 = " mon ami"
n'en former qu'une seule. print(ch1 + ch2)
Bonjour mon ami !
f-string : Chaine littérale formatée (associations de age = 18
f"... {...} ..." valeurs numériques et de chaines). print(f"Age : {age:5} ans")
f"... {...:<n} ..." f-string avec tabulation de n caractères val = 1.2573259
f"... {...:n} ..." après (:<) ou avant (:) le champ { }. print(f"val = {val:.2f}")
f"... {nombre:.df} ..." Formate à d décimales un nombre réel. val = 1.26
chaine[i:j] Le fragment de chaine compris entre s = ch1[1:3] # s = "on"
l'indice i (inclus) et l'indice j (exclu).
chaine[:n] Les n premiers caractères de la chaine. s = ch1[:2] # s = "Bo"
chaine[-n:] Les n derniers caractères de la chaine. s = ch1[-3:] # s = "our"
Conversion de caractères et de chaînes
Fonction Description Exemple
chr(entier) Retourne le caractère correspondant au print(chr(0x25B4))
code Unicode passé en paramètre.
str(objet) Convertit un objet de type quelconque et print(ch1 + " " + str(v1))
retourne une chaîne imprimable. Bonjour 5.34
int(chaine) Transforme une chaîne représentant un ch3 = "5.36"
float(chaine) nombre et retourne sa valeur numérique. f = float(ch3) # f = 5.36
hex(entier) Retourne une chaîne représentant v2 = 452
l'écriture hexadécimale ou binaire de la print(hex(v2), bin(v2))
bin(entier) 0x1C4 111000100
variable entier.
Fonctions et méthodes diverses
Fonction Description Exemple
len(chaine) Retourne le nombre de caractères de la print(len(ch1))
chaine passée en paramètre. 7
[Link]() Supprime les espaces, les tabulations et les ch4 = " Salut "
retours à la ligne pouvant exister au début ou à la print([Link]())
fin de la chaine (peut aussi supprimer des Salut
caractères dont la liste est passée en paramètre).
[Link]("sep") Retourne une liste de fragments de la ch5 = "Salut mon ami"
chaîne séparée par la chaîne "sep". print([Link](' '))
['Salut','mon','ami']
[Link]("mot") Retourne le nombre de fois où "mot" est print([Link]("a"))
présent dans la chaine. 2
Fiche ressource © B. NOURRY - A. DEQUAY - 01/09/2025