Vous êtes sur la page 1sur 2

FST Tanger Masters MBD & SIM

2
Travaux dirigés : Les chaines de caractères

1. Ecrire une fonction Test qui retourne True si une chaine de caractères ch passée en
paramètre contient le caractère ’e’ et False sinon.
2. Ecrire une fonction Compte qui compte et retourne le nombre d’occurrences du caractère
’e’ dans une chaine de caractères ch passée en paramètre.
3. Ecrire une fonction Recopie qui recopie une chaine de caractères ch1 dans une chaine de
caractères ch2, en insérant des étoiles ’*’ entre les caractères.
Exemple : ch1=’Master’ devra devenir ch2=’M*a*s*t*e*r’.
4. Ecrire une fonction Inverse qui recopie une chaine de caractères ch1 dans une chaine de
caractères ch2, en l’inversant.
Exemple : ch1=’Master’ devra devenir ch2=’retsaM’.
5. Ecrire une fonction Palindrome qui détermine si une chaine de caractères ch est un
palindrome (c’est-à-dire une chaine qui peut se lire dans les deux sens : ’radar’).
6. Exécuter les fonctions suivantes : ord(’a’) et chr(97). Tester avec plusieurs au tres
valeurs. Quel est le rôle et le type de retour de ces deux fonctions ?
7. Donner les résultats des commandes suivantes :
a. s = ‘ceci est une phrase !’ f. s [ : : 3]
b. s [8] g. s [ : : -2]
c. s [-5] h. s [len(s)-1 : 0 : -1]
d. s [4 : 9] i. s [len(s)-1 : : -1]
e. s [ : ] j. s [len(s)-1 : -1 : -1]
8. Ecrire une fonction Anagramme qui prend en entrée deux chaines ch1 et ch2, et qui
retourne True si les chaines sont anagrammes, et False sinon.
Les anagrammes sont des séquences qui se composent exactement des mêmes éléments :
« tanger » et « argent », « logarithme » et « algorithme ».
9. Ecrire la fonction Anagramme de la question précédente de manière récursive.
10. Ecrire une fonction Doublons qui prend en entrée une chaine ch, et qui renvoie True si la
chaine contient des doublons et False sinon.
11. Ecrire une fonction SansDoublons qui prend en entrée une chaine ch, et qui renvoie la
chaine dans laquelle on a éliminé tous les doublons.
12. Ecrire une fonction Repetition qui prend en paramètre une chaine de caractères ch et un
entier x puis retourne le nombre de répétitions continues dans ch à partir de l’indice x.
Exemples :
ch = bbbbbwwwwwwwwwwwwwbbbwww et x = 5 ; donne : 13
ch = bbbbbwwwwwwwwwwwwwbbbwww et x = 21 ; donne : 3

1/2 adnan.souri@gmail.com
FST Tanger Masters MBD & SIM

13. On veut programmer quelques fonctions prédéfinies des chaines de caractères en python.
Ecrire les fonctions suivantes :
a. islower(ch) : Retoune True si tous les caractères de ch sont en minuscule.
Sinon False.
b. isupper(ch) : Retourne True si tous les caractères de ch sont en majuscule et
qu’il y a au moins un caractère. Sinon False
c. lower(ch) : Permet de mettre en minuscule une chaine de caractères ch.
d. upper(ch) : Permet de mettre en majuscule une chaine de caractères ch.
e. max(ch) : Retourne le dernier caractère de ch selon l’ordre alphabétique.
f. min(ch) : Retourne le premier caractère de ch selon l’ordre alphabétique.
g. capitalize(ch) : Met en majuscule la 1ère lettre de la chaine de caractères ch.
h. isalnum(ch) : Retoune True si tous les caractères de ch sont alphanumériques
et qu’il y a au moins un caractère. Sinon False.
i. isalpha(ch) : Retourne True si tous les caractères de ch sont des lettres et qu’il
y a au moins un caractère. Sinon False.
j. isdigit(ch) : Retourne True si tous les caractères de ch sont numériques et qu’il
y a au moins un caractère. Sinon False.
k. istitle(ch) : Retourne True si ch a un format titre. i.e : chaque mot (les mots
sont séparés par espace) commence par une lettre en majuscule.
l. title(ch) : Transforme ch en un format titre.
m. isspace(ch) : Retoune True si il n’y a que des espaces dans ch. Sinon False.
n. strip(ch) : Supprime tous les espaces au début et à la fin de ch.
o. replace(ch, old, new) : Remplace toutes les occurrences de old dans ch par
new.
p. find(ch1, ch2, deb, fin) : Retourne l’indice de la première occurrence de ch2
dans ch1 si ch2 apparait dans ch1 ou dans une sous-chaine de ch1 (si deb et
fin sont donnés). La fonction retourne -1 sinon.
q. count(ch1, ch2, deb, fin) : Retourne combien de fois ch2 se produit dans ch1
ou dans une sous-chaine de ch1 entre les indices deb et fin s’il sont donnés.
r. endswith(ch, suffix, deb, fin) : Retourne True si ch ou une sous chaine de ch
(si deb et fin sont donnés) se termine par la chaine suffixe, sinon False.
s. center(ch, largeur, c) : Retourne la chaine originale ch centrée et complétée par
le caractère c (par défaut espace) sur un total de largeur colonnes.

2/2 adnan.souri@gmail.com