Vous êtes sur la page 1sur 26

Chaînes de caractères

Mehdi Mekkaoui

CPGE Tanger
Lycee Moulay Al Hassan
cpge.mekkaoui@gmail.com

22 février 2024
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Introduction

Définition 1
Une chaîne de caractères est un ensemble ordonné de caractères. Les caractères
peuvent être des lettres (majuscules ou minuscules), des chiffres, des signes de
ponctuation, des symboles ou même des caractères dit « spéciaux » sur lesquels nous
reviendrons plus tard dans ce chapitre.

1/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

En Python, on représente une chaîne de caractères en plaçant les caractères la


constituant entre une paire de guillemets ou une paire d’apostrophes :

Exemple 1

1 ch1 = " Hello world ! "


2 ch2 = ’ Ceci est une c h a n e de c a r a c t r e s ’

Remarque 1

1 ch3 = " une telle c h a n e contenant " est incorrecte "

2/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Exemple 2
Il est aussi possible d’ecrire :
1 ch4 = " c ’ est une c h a n e correcte "
2 ch5 = ’ ceci aussi est une " bonne " c h a n e ’

Ou bien pour cree une chaine vide :


1 ch = " "

3/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

concaténation

Définition 2
Les chaînes de caractères, en tant qu’ensemble ordonnés de caractères, ont beaucoup
de choses en commun avec les listes. Par exemple, on peut créer une nouvelle chaîne
de caractères en concaténant deux chaînes existantes avec l’opérateur + :
1 ch1 + ch2

1 ch1 * 3

4/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

la longueur d’une chaine est donner par :


1 len ( ch1 )
2 # 12

de cela on peur aussi parcourir une chaine soit on utilisant l’indexation


ou bien les éléments :
1 for c in ch :
2 print ( c )
3 for i in range ( len ( c ) ) :
4 print ( c [ i ])

Remarque 2
Ceci affichera la chaine ch caractère par caractère , dans la première méthode on
utilise c pour parcourir sur les éléments , et dans l’autre méthode i parcours la chaine
par indices

5/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Accès aux éléments et slicing

voici quelques exemples d’accès aux caractère d’une chaine avec leurs indice
et d’opération slicing
1 ch1 [6]
2 # ’W ’
3 ch1 [ -2]
4 # ’d ’
5 ch1 [:5]
6 # ’ Hello ’
7 ch1 [8:10]
8 # ’ rl ’
9 ch1 [ -6:]
10 # ’ World ! ’
11 ch1 [1::2]
12 # ’ el ol ! ’

6/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Assignaient

Remarque 3
Attention , l’operation d’assigniment n’est pas directement disponible comme dans
les listes !
1 ch1 [6] = " w "

et
pour faire cette tache on peut faire :
1 ch1 = ch1 [:6] + " w " + ch1 [7:]
2 print ( ch1 )
3 # ’ Hello world ! ’

7/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

chaînes et test d’égalité

Définition 3
Comme pour la plupart des objets Python, on peut tester si deux chaînes sont égales
avec l’opérateur ==. Deux chaînes sont égales si et seulement si elles contiennent
exactement les mêmes caractères, dans le même ordre (majuscules et minuscules
ont de l’importance)

quelques exemples de comparaisons :


1 " Hello " == " World "
2 # False
3 " Hello " == " Hello "
4 # True
5 " Hello " == " hello "
6 # False
7 chaine = " Hello "
8 chaine == " Hello "
9 # True
10 chaine == " chaine "
11 # False

8/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Définition 4
Contairement dans le cas de test d’inégalité on utilise l’opérateur != :
1 " Hello " != " World "
2 # True
3 chaine != " chaine "
4 # True

Nous verrons un peu plus tard dans ce cours qu’il est également possible
d’utiliser les opérateurs de comparaison <, <=, > et >= pour comparer deux
chaînes de caractères.

9/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Analyse de comparaison de deux chaînes

Définition 5
Malgré la facilite de l’opérateur == et != , or il très complique ce qui passe en arrière
plan . Pour comparer deux chaînes il faut tester :

10/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Exemple 3
Par exemple, si l’on compare les deux chaînes (de même longueur) "Hello World !" et
"Hexafluorure", les deux premiers caractères sont identiques

Donc les deux chaînes sont différentes


11/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Si vraiment on veut décortiquer cette fonction , un programme comme ceci


est équivalent :

12/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Opérateur in

Définition 6
Une autre question se pose fréquemment : est-ce qu’une chaîne de caractère ch1 «
contient » une chaîne de caractères ch2 ? C’est-à-dire, une sous-chaîne de ch1 est-elle
égale à ch2 ? Comme pour les listes, on peut utiliser le mot-clé in pour le savoir :
1 ch1 = " Hello World ! "
2 " World " in ch1
3 # True
4 " kangourou " in ch1
5 # False
6 " hello " in ch1
7 # False

13/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

conversion vers chaînes

Définition 7
la première fonction importante est celle de conversion d’une variable vers une chaîne
str()

Exemple 4

1 str (42)
2 # ’42 ’
3 str ([ 1 , 2 ])
4 # ’[1 , 2] ’
5 str ( abs )
6 # ’< built - in function abs > ’

14/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

conversion inverse

Remarque 4
Pour convertir inversement ( d’une chaîne vers un autres type )
1 int ( " 42 " )
2 # 42
3 float ( " 42 " )
4 # 42.0
5 int ( " 3.14 " )
6 #3

Attention le type liste ne fonction pas comme les autres


1 list ( " [1 , 2] " )
2 # [ ’[ ’ , ’1 ’ , ’,’, ’ ’, ’2 ’ , ’] ’]
3 str . join ( " , " , [ " A " , " B " , " cde " ])

15/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

format()

Définition 8
Parfois, on veut plus de liberté dans la fabrication d’une chaîne à partir d’éléments
qui n’en sont pas. Il existe en Python plusieurs mécanismes assez puissants (et
subséquemment parfois complexes) pour ce faire. L’un d’entre eux est basé sur la
fonction de mise en forme str.format(chaineFormat, ...) . Un exemple sera
beaucoup plus parlant :

Exemple 5

1 str . format ( " x = {} m t r e s " , 12.51)


2 # ’x = 12.51 m t r e s ’
3 str . format ( " {} fois {} gale {} " , 2 , 3 , 2*3)
4 # ’2 fois 3 gale 6’
5 str . format ( " pi vaut environ {:.3} " , math . pi )
6 # ’ Pi vaut environ 3.14 ’
7 str . format ( " pi /100 vaut environ {:.6} " , math . pi /100)
8 # ’ Pi vaut environ 0.0314159 ’

16/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

join()

Définition 9
la fonction str.join(sep, liste) . Elle prend en argument une chaîne sep et une liste
de chaînes liste et renvoie la concaténation de tous les éléments de liste, en glissant la
chaîne sep entre chacun. C’est beaucoup plus efficace que d’utiliser l’opérateur + s’il
y a plus de deux chaînes à concaténer (car dans le cas de l’opérateur +, on créerait
beaucoup de chaînes successives, une pour chaque concaténation).

Exemple 6

1 str . join ( " , " , [ " A " , " B " , " cde " ])
2 # ’A , B , cde ’
3 " , " . join ([ " A " , " B " , " cde " ])
4 # ’A , B , cde ’
5 str . join ( " " , [ " A " , " B " , " cde " ])
6 # ’ ABcde ’
7 " " . join ([ " A " , " B " , " cde " ])
8 # ’ ABcde ’

17/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

strip()

Définition 10
Citons enfin deux fonctions bien pratiques pour travailler avec des chaînes de
caractères. La première, str.strip , permet de retirer les caractères « non imprimables
» (espaces, tabulations, retours à la ligne, etc.) à chaque extrémité de la chaîne passée
en argument :

Exemple 7

1 str . strip ( " Blop " )


2 # ’ Blop ’
3 chaine = " Blop "
4 chaine . strip ()
5 # ’ Blop ’

18/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

split()

Définition 11
La seconde est la fonction str.split qui « découpe » une chaîne passée en argument
et retourne une liste de chaînes. Par défaut, le découpage se fait sur les espacements
(qui seront supprimés), mais on peut spécifier via un argument supplémentaire un
caractère qui servira de séparateur :

Exemple 8

1 str . split ( " A , bc , DeF " )


2 # [ ’A , ’ , ’bc , ’ , ’ DeF ’]
3 " A , bc , DeF " . str . split ()
4 # [ ’A , ’ , ’bc , ’ , ’ DeF ’]
5 str . split ( " A , bc , DeF " , " ," )
6 # [ ’ A ’, ’ bc ’, ’ DeF ’]

19/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

fonction ord
Définition 12
Python dispose de deux fonctions permettant d’obtenir le code numérique (on parle «
point de code Unicode » d’un caractère dans la norme Unicode, et, inversement,
d’obtenir un caractère à base de son code numérique. Plutôt que de travailler avec des
codes binaires, on utilise l’entier (non signé) qui lui est associé. La fonction ord
permet donc de transformer un caractère 7 en un entier représentant sont point de
code Unicode :

Exemple 9

1 ord ( ’A ’)
2 # 65
3 ord ( ’a ’)
4 # 97
5 ord ( ’ ’)
6 # 233
7 ord ( " " )
8 # 244
9 chr (90)
10 # ’Z ’
20/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

fonction chr

Définition 13
La fonction réalisant l’opération de conversion inverse, transformant un entier en
caractère, est la fonction chr :

Exemple 10

1 chr (90)
2 # ’Z ’
3 chr (234)
4 #’ ’

21/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Comparaison de caractères et de chaînes

Définition 14
Le fait que l’on puisse associer de façon unique chaque caractère à un nombre fournit
un ordre total sur l’ensemble des caractères : lorsque l’on compare des caractères, on
compare en fait les points Unicode associés. Ainsi, on a

Exemple 11

1 ’a ’ < ’ ’
2 # True
3 ’a ’ < ’b ’
4 # True
5 ’Z ’ <= ’A ’
6 # False
7 ’2 ’ <= ’7 ’
8 # True
9 ’a ’ < ’B ’
10 # False
11 " grand " < " petit "
12 # True
22/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Exemple 12

1 " kopeck " < " koala "


2 # False
3 " orange " < " oranger "
4 # True
5 " 20 " < " 100 "
6 # False

23/25

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Voici quelque méthodes applicable sur les chaînes de caractères :


index(c) : retrouve l’index de la première occurrence du caractère "c"
dans la chaîne, ou déclenche une erreur si absent (ValueError : substring
not found).
find(aiguille) : cherche la position d’une sous-chaîne aiguille dans la
chaîne, en partant du début.
rfind(aiguille) : pareil que "find" mais en partant de la fin (reverse).
count(aiguille) : compte le nombre de sous-chaînes aiguille dans la
chaîne.
lower() : convertit une chaîne en minuscules.
upper() : convertit une chaîne en majuscules.
capitalize() : convertit en majuscule la première lettre d’une chaîne.
swapcase() : convertit toutes les majuscules en minuscules et vice-versa.
strip() : enlève les espaces éventuels au début et à la fin de la chaîne
(trime).
replace(old, new) : remplace tous les caractères old par des caractères
new dans la chaîne.
24/25
etc

Chaînes de caractères
Introduction et déploiement Création chaînes Manipulation des chaines Fonctions prédéfinis pour les chiâmes codage des caractères Autres méthodes

Remarque 5
visitez : Méthodes listes . pour plus de méthodes

25/25

Chaînes de caractères

Vous aimerez peut-être aussi