Les chaînes de caractères

Création d'une chaîne de caractères
Les chaînes de caractères en python sont des séquences de symboles (lettres, ponctuations, chiffres...) entre guillemets ou apostrophes. Par exemple :
texte = "Voici une chaîne de caractères !"
On peut également créer des chaines vides. texte = "" est une chaîne de caractère vide.

Les éléments d'une chaîne

Les caractères d'une chaîne sont indexés comme les éléments d'une liste. texte[n] correspond au n-ième caractère de la chaîne texte.
Par exemple, si texte = "Voici une chaîne de caractères !" alors texte[3] donne le caractère "c" (l'indexation commence à 0).
Attention ! Les chaînes de caractères sont non-mutables, i.e. on NE PEUT PAS modifier ces éléments en écrivant texte[3] = "a".
Le nombre d'éléments d'une chaîne de caractères peut être obtenu avec la fonction len comme ci-dessous :
len(texte) donne 32.
Astuce : texte[-1] renvoie fait référence au dernier caractères de la chaîne


Exercices : C1 Recherche d'un caractère, C3 Compteur


Récupération de plusieurs caractères
texte[n:m] permet de récupérer la chaîne des caractères allant de l'indice n à m-1. Ainsi, pour le texte = texte = "La beauté est dans les yeux de celui qui regarde. Oscar Wilde" :
         - texte[3:9] donne "beauté".
         - texte[9:] donne toute la chaîne à partir de l'indice 9, i.e " est dans les yeux de celui qui regarde. Oscar Wilde".
         - texte[:9] donne toute la chaîne jusqu'à l'indice 9 exclu, i.e "La beauté".

Concaténation
On peut concaténer deux chaînes de caractères avec l'opérateur +, par exemple :
texte = texte + "!!!" donne "Voici une chaîne de caractères !!!!"

Exercices : C2 Remplacer un caractère, C13 Inversion, C5 Mélange interne, C12 Simple manipulation, C13 Inversion


Transformer une variable en caractères
La fonction str peut permettre de convertir une variable en une chaîne de caractères. Par exemple :
str(5) donne le caractère "5".


Chaîne de caractères et liste
On peut découper une chaîne de caractères telle que texte = "La beauté est dans les yeux de celui qui regarde. Oscar Wilde"et placer tous les éléments dans une liste. La méthode utilisée est split. Elle prend en paramètre la chaîne de caractères qui sert de séparateur entre les éléments. Par exemple :
texte.split(" ") donne la liste ["La", "beauté", "est", "dans", "les", "yeux", "de", "celui", "qui", "regarde.", "Oscar", "Wilde"]

Exercices : L10 Split, C6 Mélange interne d'une phrase

On peut également créer une liste de caractères à partir d'une chaîne de caractères :
list(c) avec c = "C'est en essayant encore et encore que le singe apprend à bondir" donne ["C","'","e","s","t"," ","e","n"," ","e","s","s","a","y","a","n","t"," ","e","n","c","o","r","e"," ","e","t"," ","e","n","c","o","r","e"," ","q","u","e"," ","l","e"," ","s","i","n","g","e"," ","a","p","p","r","e","n","d"," ","à"," ","b","o","n","d","i","r"]

Exercice : C4 Mélanger du texte


Caractères et nombre ASCII
Chaque caractère à un équivalent en code numérique i.e. en nombre, c'est le code ASCII (American Standard Code for Information Interchange). Les caractères alphabétiques de a à z en minuscule sont codés sur des nombres allant de 97 (pour "a") à 122 (pour "z"). Le "b" correspondant alors à 98, le "c" à 99 et ainsi de suite...
La fonction ord permet d'obtenir le nombre correspondant à un caractère. Par exemple : ord("a") renvoie 97.
La fonction chr permet de faire l'inverse. Par exemple : chr(100) renvoie "a".
Pour plus d'information sur le code ASCII cliquez ici.

Exercices : C10 Lettre <-> Nombre, C11 Rot13