1. CPGE informatique (python)
Pr. A. DOURHRI 2019/2020
1
Chaînes de caractères (classe Str)
1) Définition et notation
Une chaîne de caractères (string en anglais et Str en python) est une suite finie de caractères
consécutifs notée entre apostrophes ou guillemets (Les caractères se trouvent dans
plusieurs formes: lettres,chiffres, signes de ponctuation, caractères spéciaux ….)
Exemple
>>>chaine='Ceci est une chaine'
>>>ch="Cela en est une autre"
>>>ch2=" " #chaine vide
>>>ch3=' ' #chaine vide aussi
>>>ch4="L'école"
2) Accès aux éléments
>>>ch='cpge pcsi'
>>>ch[2] =>3ème caractère ( 'g' )
>>>ch[1:6] =>Sous-chaine du 2° au 6° caractère( 'pge p' )
>>>ch[:4] =>Sous-chaine du 1° au 4° caractère( 'cpge' )
>>>ch[2:4]='ci' =>Erreur car une chaine n'est pas modifiable
3) Surcharge des opérateurs +(concaténation) et *(duplication)
>>>ch1="cpge"
>>>ch2="ken"
>>>ch3=ch1+" "+ch2 ==> "cpge ken"
>>>ch4=ch3*3 ==> " cpge kencpge kencpge ken"
4) Fonctions et méthodes usuelles
Fonction ou méthode len(ch) ord(c) chr(n)
Role nbr d'éléments code du caractère c caractère du code n
Fonction ou méthode ch.upper() ch.lower() ch1.count(ch2)
Role convertit une chaine
en majuscules
convertit une chaine en
minuscules
nbr d'occurrences de
la chaine ch2 dans
ch1
Fonction ou méthode ch1.index(ch2) L=ch.split(car_sep) ch="car_sep".join(L)
Role la position de ch2 dans
ch1 (la 1ère
occurrence à
gauche trouvée)
stocke, dans L, les sous
chaînes de la chaine ch
(car_sep : caractère
séparateur)
stocke, dans ch, les
éléments de la liste L en
les liant par le caractère
car_sep
Fonction ou méthode ch1.replace(c1,c2[,nb]) ch=str(nb) ch.isalpha()
Role remplace nb premières
occurrences de la chaine
c1 par la chaine c2 dans
la chaine ch1
retourne, dans ch, le
nombre nb au format
chaîne de caractères
retourne True si la
chaîne ch ne contient
que des caractères
alphabétiques et
retourne False sinon
2. CPGE informatique (python)
Pr. A. DOURHRI 2019/2020
2
Autres méthodes : isupper(), islower(), isalnum(), isdigit(), isspace()
5) Test d'appartenance (if ... in ..../if ... not in ..)
- d'un caractère dans une chaine:
>>>if 'm' in ch3:
print("ok")
- d'une chaine dans une autre:
>>>if 'pc' in ch3:
print("ok")
6) Conversion du type Str à un autre type (et de ce dernier vers Str)
-On peut convertir une valeur d’un type simple e vers une chaîne de
caractères à l’aide de str(e)
>>>str(1.2)
>>>'1.2'
-En revanche, la conversion depuis un type "string":
>>>int('123')
123
>>>float('12.53')
12.53
>>>list('12.53')
['1', '2', '.', '5', '3']
Exercice1
1) Ecrire un script python permettant de conjuguer un verbe du 1° groupe régulier (donné à
l'infinitif) dans le présent de l'indicatif
2) Ecrire une fonction testant si une chaine est un palindrome.
Un palindrome est un texte ou un mot dont l'ordre des lettres reste le même qu'on le lise de
gauche à droite ou de droite à gauche. Exemples : ‘ici’,’mon nom’,’bob’……….
Exercice2
La légende raconte que Jules César transmettait ses messages en décalant chaque lettre de
3 positions (ce qu'on appelle la clé de cryptage): A devient D, B devient E,... W devient Z, X
devient A, Y devient B et Z devient C. Les chiffres sont décalés de la même façon, les autres
caractères (espaces, virgules, points...) ne sont pas modifiés.
1) Ecrire deux fonctions crypter_Cesar(ch) et decrypter_Cesar(ch) réalisant le cryptage et le
décryptage d’un message représenté par une chaîne ch.
2) Pour plus de sécurité, la clé de cryptage est variable et doit figurer dans les arguments des
deux fonctions précédentes :
-écrire crypterCesar(ch,x) et decrypterCesar(ch,x) réalisant le chiffrement et le déchiffrement
d’un message représenté par une chaîne ch avec la clé de cryptage x.