Vous êtes sur la page 1sur 7

Chapitre 4 : Les chaines de caractères en Python

Chapitre 4 : Les chaines de caractères en Python


Objectifs de la leçon :

L'objet de cette leçon est de :


• Maitriser la manipulation des chaines de caractères.
• Maitriser les fonctions prédéfinies qui manipulent les chaines.

Nous avons déjà abordé les chaînes de caractères dans les chapitres précédents. Ici nous
allons un peu plus loin notamment avec les méthodes associées aux chaînes de caractères.
Notez qu’il existe un module string mais qui est maintenant considéré comme obsolète depuis
la version 2.5 de Python.

Prérequis :
Leçon 1, leçon 2 et leçon 3

1. Introduction :
Les chaines de caractères sont ce qu’on appelle communément du texte. Pour définir une chaine
de caractères ou pour stocker une chaine de caractères dans une variable, il faudra l’entourer
de guillemets simples ou doubles.

texte = "Bonjour à tous" # ou bien texte =’Bonjour à tous’


print(texte) → affiche : Bonjour à tous

Si notre chaine de caractères contient elle-même des guillemets simples (apostrophes) ou


doubles, il faudra les échapper les uns ou les autres en fonction du délimiteur choisi pour qu’ils
soient correctement interprétés car sinon Python pensera qu’ils servent à indiquer la fin de la
chaine. Le caractère d’échappement en Python est l’antislash « \ ».

Texte ='Je m'appelle "Bassem Boughzala"'


print(texte)

Si on exécute le script suivant on aura un message d’erreur :

Pour corriger le programme il suffit de faire précéder les apostrophes et les guillemets à afficher
par le symbole « \ ».

texte ='Je m\'appelle \"Bassem Boughzala\"'


print(texte)

Réalisé par : Bassem Boughzala (ISET Rades) Page : 1/7


Chapitre 4 : Les chaines de caractères en Python

Remarque : toute valeur entourer de guillemets doubles ou simples est considérée de type
« str ». (Objet de la classe str)

2. Méthodes associées aux chaines de caractères :


1. Les fonctions « lower() » et « upper() » passent un texte respectivement en minuscule et en
majuscule. On remarque que l’utilisation de ces fonctions n’altèrent pas la chaîne de départ
mais renvoie la chaîne transformée.

chaine1 = "bonjour"
chaine2 = chaine1.upper()
print(chaine2) → affiche : BONJOUR

2. La fonction « capitalize() » permet de mettre en majuscule la première lettre de la chaine :

chaine = "salut"
print(chaine.capitalize()) → affiche Salut

Il est possible aussi de faire la même chose de la manière suivante :

chaine = "salut"
print(chaine[:1].upper()+chaine[1:]) → affiche : Salut
#ou bien
print(chaine[0].upper() + chaine[1:]) → affiche : Salut

3. La fonction « title() » met en majuscule la première lettre de chaque mot d’une phrase.

phrase = "bonjour comment vas tu?"


print(phrase.title())

4. La méthode « split() » découpe une chaîne de caractères en plusieurs éléments


appelés champs et transforme la chaine en une liste.

animaux = "girafe tigre singe souris"


liste = animaux.split()
print(liste)

Il est possible de modifier le séparateur de champs, par exemple :


phrase = " Bonjour:tout:le:monde"
print(phrase.split(":"))

Réalisé par : Bassem Boughzala (ISET Rades) Page : 2/7


Chapitre 4 : Les chaines de caractères en Python

Il est également intéressant d'indiquer à « split() » le nombre de fois qu'on souhaite découper
la chaîne de caractères avec l'argument maxsplit :

animaux = "girafe tigre singe souris"


print(animaux.split(maxsplit=1)) # affiche : ['girafe', 'tigre singe souris']
print(animaux.split(maxsplit=2)) # affiche : ['girafe', 'tigre', 'singe souris']

5. L’inverse de « split() » et la fonction « join() » qui transforme une liste en une chaine.

liste = ["Le", "langage", "python"]


chaine = " ".join(liste)
print(chaine) → affiche : le langage python

Remarque : Attention, la méthode « join() » ne s'applique qu'à une liste de chaînes de


caractères. C-à-d si la liste était composée des éléments suivants ["aaa", 45, "BBB"] la
fonction join() générera une erreur.

6. La méthode « find(chaine[,début][,fin]) » permet de chercher une sous-chaine dans la


chaine. « Début » et « fin » s’ils sont mentionnés indique la position de début de la
recherche et la position de fin. Si la sous chaine ne se trouve pas dans la chaine la fonction
« find » retourne la valeur -1.

chaine ="anticonstitutionnellement"
print(chaine.find("ti")) → affiche : 2
print(chaine.find("ti",3,10)) → affiche : 8
print(chaine.find("ti",20,24)) → affiche : -1

7. La méthode « index(chaine[,début][,fin]) » est pratiquement équivalente à la fonction


« find() » elle retourne l’indice de l’élément cherché. Sauf que elle retourne un message
d’erreur si l’élément ne se trouve pas dans la chaine et non pas -1. Le message d’erreur
retourné et de type « ValueError : substring not found »

chaine ="anticonstitutionnellement"
print(chaine.index("ti"))
print(chaine.index("ti",3,10))
print(chaine.index("ti",20,24))

Réalisé par : Bassem Boughzala (ISET Rades) Page : 3/7


Chapitre 4 : Les chaines de caractères en Python

8. La fonction « replace(anc, nouv [,max]) » permet de remplacer chaque occurrence de la


sous_chaine « anc » par la sou_chaine « nouv ». Si « max » est présent ça indique le nombre
d’occurrences à remplacer.

phrase = "le langage python out trou puissant. C'out aussi un langage object"
print(phrase.replace("ou","es"))
print(phrase.replace("ou","es",2))

9. La méthode « count() » compte le nombre d’occurrences d'une chaîne de caractères passée


en argument

chaine ="anticonstitutionnellement"
print(chaine.count("ti")) → affiche : 3
print(chaine.count("yy")) → affiche : 0

10. La méthode « startswith() » vérifie si une chaîne de caractères commence par une autre
chaîne de caractères. Cette méthode est particulièrement utile lorsqu'on lit un fichier et que
l'on veut récupérer certaines lignes commençant par un mot-clé.

chaine = "Bonjour monsieur le capitaine"


print(chaine.startswith("Bonjour")) → affiche : True
print(chaine.startswith("Bonsoir")) → affiche : False

11. La méthode « endswith() » vérifie si une chaîne de caractères se termine par une autre
chaîne de caractères.

chaine = "Bonjour monsieur le capitaine"


print(chaine.endswith("ne")) → affiche : True
print(chaine.endswith("NE")) → affiche : False

12. La méthode « strip() » permet de supprimer tous les espaces au début et à la fin de la
chaine.

ch = " Bonjour cher ami "


print(len(ch)) → affiche : 30
ch =ch.strip()
print(len(ch)) → affiche : 16

13. La méthode « center(longueur, caractère) » permet de centrer la chaine par rapport à la


longueur spécifiée. Par défaut « caractère » est l’espace mais ça peut être n’importe quel
autre caractère.
ch="bonjour"
print(ch)
print(ch.center(20))
print(ch.center(20,'-'))

Réalisé par : Bassem Boughzala (ISET Rades) Page : 4/7


Chapitre 4 : Les chaines de caractères en Python

14. L’opérateur « in » permet de tester si une sous-chaine se trouve dans la chaine source ou
pas. Il retourne « True » si la sous-chaine se trouve « False » sinon. L’inverse de
l’opérateur « in » est l’opérateur « not in ».

ch = "le langage python"


if "langage" in ch:
print("Trouvé")
else:
print("Non Trouvé")

3. Autres fonctions sur les chaines :

Exemple1 :

ch1 = "b12"
ch2 ="12b"
print(ch1.isidentifier()) → affiche : True (il s’agit d’un identificateur valide)
print(ch2.isidentifier()) → affiche : False (il s’agit d’un identificateur non valide)

Exemple 2 :

nb1 ="1245"
nb2 ="12ab"
print(nb1.isnumeric()) → affiche : True
print(nb2.isnumeric()) → affiche : False

Réalisé par : Bassem Boughzala (ISET Rades) Page : 5/7


Chapitre 4 : Les chaines de caractères en Python

Exercices :
1. Supprimer un caractère dans une chaine :
Ecrire un script Python qui appelle une Fonction « supprimer (c, ch) » et qui supprime le
caractère « c » dans une chaine « ch ».
Exemple :
ch = "**LePython*.*com"
c = "*"
Résultat : "LePython.com"

2. Supprimer un mot dans une chaine :


Ecrire un script Python qui appelle une Fonction « supprimer_mot (mot, ch) » et qui
supprime le mot « mot » dans une chaine « ch ».
Exemple :
ch = "LePythoooon.coooom"
mot = "ooo"
Résultat : "LePython.com"

3. Remplacer un caractère dans une chaine :


Ecrire un script Python qui appelle une Fonction « remplacer (i, c, ch) » et qui remplace le
caractère d'indice « i » dans la chaine « ch » par le caractère « c ». « i » est un entier positif
Exemple :
ch = "LaPython.com"
c = "e"
i=1
Résultat : "LePython.com"

4. Majuscule d'une chaine de caractères :


Ecrire un script Python qui appelle une Fonction « majuscule(ch) » et qui retourne la
chaine ch en majuscule sans utiliser la méthode prédéfinie ch.upper().
Exemple :
ch = "bonjour"
Résultat : "BONJOUR"

5. Cryptologie avec la méthode Jules César :


Ecrire un script Python qui appelle une Fonction « cryptographie_Jule_Cesar(n,
message)» et qui réalise le chiffrement d’un message passé en paramètre sous forme d’une
chaîne en utilisant la méthode de Jules César. N étant le nombre de décalage à faire.
En cryptographie, le chiffrement par décalage, aussi connu comme le chiffre de César ou
le code de César, est une méthode de chiffrement très simple utilisée par Jules César dans
ses correspondances secrètes (ce qui explique le nom « chiffre de César »).

Exemple :
Si n = 3 (n étant le nombre de décalage)
La chaine "BONJOUR" donne "ERQMRXU"

Réalisé par : Bassem Boughzala (ISET Rades) Page : 6/7


Chapitre 4 : Les chaines de caractères en Python

6. Chercher le nombre d’occurrence de chaque caractère d’une chaine :


Ecrire un script Python qui demande à l’utilisateur de saisir une chaine de caractères « ch »
et qui affiche un message indiquant le nombre d’occurrences de chaque caractère dans la
chaine.

Exemple :
ch = "bonjour monsieur"
le nombre d’occurrence du caractère ‘b’ = 1
le nombre d’occurrence du caractère ‘o’ = 3
le nombre d’occurrence du caractère ‘n’ = 2

7. Soit la chaine de caractères suivantes : "P@#ynMo@HameD26at^&i5Ve". Ecrire un script


Python qui appelle les fonctions suivantes :
a. « compter(ch) » : qui compte tous les caractères, les lettres minuscules, les lettres
majuscules, les chiffres et les symboles spéciaux de cette chaine.
b. « calculer(ch) » : qui renvoie la somme et la moyenne des chiffres qui apparaissent
dans la chaine, en ignorant tous les autres caractères.
c. « derniere_position(sc, ch) » qui renvoie la position de la dernière occurrence de
la sous-chaine « sc » dans la chaine « ch ». Si la sous-chaine ne se trouve pas dans
la chaine la valeur -1 sera renvoyée.

8. Poids d’une chaine :


On définit le poids d’une chaine comme étant la somme des produits de la position de
chaque voyelle dans cette chaine par son rang dans l’alphabet français. Si la chaine ne
contient pas de voyelle alors son poids est égal à zéro.

NB : les voyelles sont A, E, I, O, U, Y et leurs rangs respectifs sont : 1, 5, 9, 15, 21, 25

Exemples :
La chaine "BONNE" contient 2 voyelles ‘O’ et ‘E’, son poids est égal à : 2*15+5*5 = 55
La chaine "CHANCE" contient 2 voyelles ‘A’ et ‘E’, son poids est égal à : 3*1+6*5 = 33

Ecrire un script Python qui permet de lire une chaine non vide composée seulement par des
lettres alphabétiques majuscules puis calcule et affiche le poids de cette chaine.

Réalisé par : Bassem Boughzala (ISET Rades) Page : 7/7

Vous aimerez peut-être aussi