TP 2 : Algo & Python


Dans ce TP, nous ferons quelques exercices sur la manipulation de chaines de caractère (str) avec Python.


Instructions sur les chaines en Python.


L'affectation d'une chaine

chaine1 = 'Bonjour a tous'


La saisie d'une chaine :raw_input

chaine = raw_input (" Veuillez saisir une chaine, svp")


L'affichage d'une chaine

print " Hello World "

hello = " Bonjour le monde "

print (hello) # affiche le contenu d'une variable

print (" Ce que je veux dire c'est ", hello) # affiche du texte et une variable

Concaténer deux chaines.

Concaténer deux chaines, c'est former une nouvelle chaine avec deux chaines existantes.


chaine1 = "Au revoir"

chaine2 = chaine1 + "les petits amis"

chaine3 = "au plaisir "

chaine4 = chaine3 + " de vous revoir"


Les fonctions sur les chaines

Dans une chaine de caractères chaque caractère est à une position particulière.
Le premier caractère est à la position 0.

Le second caractère est à la position 1.

Le n-ième caractère est à la position n-1.

Ainsi dans la chaine hello


hello = "Au revoir"


Le caractère à la position 0 est 'A', le caractère à la position 1 est 'u', le caractère à la position 2 est ' ' , etc. Avec la position des caractères il est possible d'utiliser quelques fonctions de Python.


find : renvoie la position de la première occurrence d'une sous chaîne dans une chaîne; renvoie –1 si la sous-chaîne n'est pas présente.


"abcdabc".find("bc") # retourne 1

"abcdabc".find("z") # retourne –1

print "abcdabc".find("bc") # affiche 1

print "abcdabc".find("z") # affiche –1

hello = "Au revoir"

hello.find(" ") # retourne 2

print "find = ", hello.find(" ") # affiche 2



index : renvoie la position de la première occurrence d'une sous chaîne dans une chaîne; lève une exception si la sous-chaîne est absente.

rindex : renvoie la position de la dernière occurrence d'une sous chaîne dans une chaîne; lève une exception si la sous-chaîne est absente.


"abcde".index("bc") # retourne 1

"ababab".index("ab") # retourne 0

"abcde".rindex("bc") # retourne 1

"ababab".rindex("ab") # retourne 4



[i:i+k] : permet d'extraire d'une chaîne une sous chaîne définie entre position et longueur..


"abcde"[0:3] # retourne abc

"ababab"[3:4] # retourne b

"abcde"["abcde".index("bc"):"abcde".index("bc")+3] # retourne bcd



len : permet d'obtenir la taille d'une chaine


len("abcde") # retourne 5

len("ab") # retourne 2

hello = "hello world"

len(hello) # retourne 11



cmp : compare 2 objets a et b et retourne –1 si a est < b , 0 si a=b ou 1 si a est > b, la comparaison se fait dans l'ordre lexicographique.


cmp("abcdefg", "date") # retourne -1 (abcdefg avant date)

cmp("abcdefg", 4) # retourne 1 (les chiffres avant les lettres)

cmp("abcdefg", "ABCDEFG") # retourne 1 (les majuscules avant les minuscules)

cmp("abcdefg", "abcd"+"efg") # retourne 0



upper : convertit une chaîne de caractères en caractères majuscules.

lower : convertit une chaîne de caractères en caractères minuscules.



"AbCdEfG".upper() # retourne ABCDEFG

"AbCdEfG".lower() # retourne abcdefg

hello = "hello world"

hello.lower() # retourne hello world

hello.upper() # retourne HELLO WORLD





Exercice 1


Testez tous les exemples ci-dessus, en affichant les valeurs retournées par les fonctions.



Exercice 2


Réalisez un programme qui affiche une saisie entièrement en majuscules, afin d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : BONJOUR


Autre exemple d'exécution :

Entrez un mot : Titi
Avant : Titi
Apres : TITI



Exercice 3


Réalisez un programme qui affiche une saisie entièrement en minuscules, afin d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : bonjour


Autre exemple d'exécution :

Entrez un mot : Titi
Avant : Titi
Apres : titi



Exercice 4


Réalisez un programme permettant d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : onjourB


Autre exemple d'exécution :

Entrez un mot : Titi
Avant : Titi
Apres : itiT



Exercice 5


Réalisez un programme permute le premier et le second caractère, afin d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : oBnjour


Autre exemple d'exécution :

Entrez un mot : De
Avant : De
Apres : eD





Exercice 6


Réalisez un programme permute le premier et le dernier caractère, afin d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : ronjouB


Autre exemple d'exécution :

Entrez un mot : De
Avant : De
Apres : eD




Exercice 7


Réalisez un programme permute le dernier et l'avant dernier caractère, afin d'avoir le comportement suivant :


Entrez un mot : Bonjour
Avant : Bonjour
Apres : Bonjoru


Autre exemple d'exécution :

Entrez un mot : De
Avant : De
Apres : eD



Exercice 8


Remplacer le @ d'une adresse mail avec la chaine "AT", afin d'avoir le comportement suivant :


Entrez une adresse : tony.dujardin@lifl.fr
Résultat : tony.dujardinATlifl.fr


Autre exemple d'exécution :

Entrez une adresse : bureau3@57
Résultat : bureau3AT57



Exercice 9


Faire les exercices du TD 2 à partir de l'exercice 3.