Les Chaînes des caractères en Python
1) Définition :
Les chaînes de caractères peuvent être considérées comme des listes (de caractères) un
peu particulières :
2) Manipulation des chaînes :
Prenons comme exemple : ch=’HELLO’
0 1 2 3 4
H E L L O
-5 -4 -3 -2 -1
Instruction Valeur Type
Ch1 =3*ch Ch1 = str
C =ch[0] C= str
C =ch[2] C= str
C =ch[-1] C= str
C =ch[-4] C= str
Ch1 = ch[ :] str
Ch1 =ch[0 :] Ch1 =
Ch1 =ch[ :5]
Ch1 =ch[3 :] Ch1 = str
Ch1 =ch[0 :2] Ch1 = str
Ch1 =ch[1 :4] Ch1 = str
Ch1 =ch[-3 :-1] Ch1 = str
Réalisé par Mme Inès Ben Attigue 1
Ch1 =ch[-4 :-1] str
Ch1 =
Ch1 =ch[1 :4]
Ch1 =ch[-5 :-3] Ch1 = str
Ch1 =ch[-4 :] Ch1 = str
Ch1 =ch[ :-4] Ch1 = str
Ch1 =ch[0 ::2] Ch1 =’HLO’ ch[0] + ch[0+2] + ch[2+2] str
le pas
Ch1 =ch[ :-1 :2] Ch1 = str
Ch1 =ch[ ::-1] Ch1 = str
L =len(ch) L= int
Ch1 =ch[ :len(ch)]
Ch1 = str
Ch1 =ch[0 :]
Test =’H’ in ch Test =True bool
Test =’LO’ in ch Test =True bool
Test =’h’ in ch Test =False bool
X=eval(‘5+10’) X=15 int
X=eval(‘5*2+20’) X=30 int
X= eval('"ali"') X=’ali’ str
X=eval(‘5<10’) X=True bool
X= eval('"mohamed"+" "+"ali"') X=’mohamed ali’ str
X= eval('"mohamed".upper()+" "+"ali"') X= 'MOHAMED ali' str
def init():
n=2 X=7 int
return n**2
X=eval('3+init()')
def init():
ch='2' X=’322’ str
return ch*2
X=eval('"3"+init()')
Réalisé par Mme Inès Ben Attigue 2
3) les méthodes sur les chaines :
Méthode Exemple Type de
résultat
* ch =’hello’
ch=[Link]()
ch sera ‘HELLO’
.upper() : convertir en majuscule une chaine ou str
un caractère * ch =’bac’.upper()
ch sera ‘BAC’
* c =ch[1].upper()
c sera ‘E’
* ch =’BAC’.lower()
.lower() : convertir en minuscule une chaine ou ch sera ‘bac’
un caractère str
* c =’B’.lower()
c sera ‘b’
* ok =’1A45b’.isalnum()
.isalnum() : renvoie True si une chaine ne ok sera True
contient que des lettres et des chiffres
* ok =’12.45’.isalnum()
ok sera False bool
* ok =’’.isalnum()
ok sera False
* ok =’BafG’.isalpha()
.isalpha() : renvoie True si une chaine est ok sera True
alphabétique sinon False
* ok =’12.4a5’.isalpha() bool
ok sera False
* ok =’’.isalpha()
ok sera False
* ok =’6539’.isdigit()
.isdigit() : renvoie True si une chaine ne ok sera True
contient que des digits (chiffres)
* ok =’12.45A’.isdigit() bool
ok sera False
* ok =’’.isdigit()
ok sera False
* ok =’ ’.isspace()
.isspace() : renvoie True si une chaine ne ok sera True
contient que des espaces
* ok =’1 45 A’.isspace() bool
ok sera False
* ok =’’.isspace()
ok sera False
Réalisé par Mme Inès Ben Attigue 3
* ch =’HELLO’
.count() : donne le nombre d’occurrences N =[Link](‘L’) int
d’une chaine dans une autre N sera 2
* ch =’HELLO’
N =[Link](‘l’)
N sera 0
ch = ‘HELLO’
* p =[Link](‘E’)
p sera 1
* p =[Link](‘LO’)
.find() : donne la position de la première p sera 3 int
occurrence d’une chaine dans une autre, ou -1 * p =[Link](‘h’)
si la chaîne n’existe pas p sera -1
* p =ch[2 :].find(‘H’)
p sera -1
* p =[Link](‘’) p sera 0
ch = ‘new england’
* p =[Link](‘n’)
.rfind() : donne la position de la dernière p sera 9
occurrence d’une chaine dans une autre , -1 si * p =[Link](‘La’)
la chaîne n’existe pas p sera -1 int
* p =[Link](‘w’)
p sera 2
* p =[Link](‘’) p sera 11=len(ch)
ch =’HELLO’
.capitalize() : mettre en minuscule le premier ch =[Link]()
caractère d’une chaine ch sera ‘hELLO’ str
ch =ch[0].lower()+ch[1 :]
* ch =’ali va au souk’
ch =[Link]()
ch sera ‘Ali Va Au Souk’
.title() : convertir chaque premier caractère On suppose que ch ne contient que des
d’un mot en majuscule lettres et des espaces (séparateur des mots)
Str
* ch =’ali ba-besma ;ca12safa’
ch sera ‘Ali Ba-Besma ;Ca12Safa’
car les séparateurs sont : l’espace, ‘-‘, ‘ ;’,
‘12’
ch =’lemia leve le vaisselle’
str
.replace(mot1,mot2,N) : remplacer les n * ch =[Link](‘le’,’la’)
premières occurrences de mot 1 par le mot 2 ch sera ‘lamia lave la vaisselle’
remplacer toutes les occurrences
* ch =[Link](‘le’,’la’,2)
ch sera ‘lamia lave le vaisselle’
remplacer les 2 premières occurrences
Réalisé par Mme Inès Ben Attigue 4
* ch =’ ali est content ‘
ch1 =[Link]()
ch1 sera ‘ali est content’
* ch =’ \tali est content\n’
ch1 =[Link]() str
.strip() : nettoyer les bords d’une chaine des ch1 sera ‘ali est content’
caractères, par défaut elle supprime les espaces,
les tabulations et le retour à la ligne0 * ch =’ \tali est content\n ‘
ch1 =[Link](‘ ‘)
ch1 sera ‘\tali est content\n’
* ch =’++12+150+20++’
ch1 =[Link](‘+’)
ch1 sera ‘12+150+20’
* ch =’Ali va école’
t =[Link]()
t sera [‘Ali’, ‘va’,’école’]
t =[Link](‘ ‘)
* ch =’ ali va ‘
t =[Link]()
t sera [‘ali’, ‘va’]
list
.split() : découpe une chaine des caractères en t =[Link](‘ ‘)
plusieurs éléments en utilisant un séparateur t sera [‘’,’’,’ali’,’’,’va’ ;’’]
par défaut les séparateurs sont l’espace, la
tabulation ou le retour à la ligne * ch =’ ali\nsafa \n\tleith’
t =[Link]()
t sera [‘ali’,’safa’,’leith’]
Les séparateurs sont l’espace, la
tabulation \t et le retour à la ligne \n
* ch =’12+100+1020’
t =[Link](‘+’)
t sera [‘12’,’100’,’1020’]
* ch =’+12+100++1020+’
t =[Link](‘+’)
t sera [‘’,’12’,’100’,’’,’1020’,’’]
Réalisé par Mme Inès Ben Attigue 5