Dans ce TP, nous ferons quelques exercices sur la manipulation de chaines de caractère (str) avec 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
Testez tous les exemples ci-dessus, en affichant les valeurs retournées par les fonctions.
Réalisez un programme qui affiche une saisie entièrement en majuscules, afin d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : Titi |
Réalisez un programme qui affiche une saisie entièrement en minuscules, afin d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : Titi |
Réalisez un programme permettant d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : Titi |
Réalisez un programme permute le premier et le second caractère, afin d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : De |
Réalisez un programme permute le premier et le dernier caractère, afin d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : De |
Réalisez un programme permute le dernier et l'avant dernier caractère, afin d'avoir le comportement suivant :
|
Entrez un mot : Bonjour |
Autre exemple d'exécution :
|
Entrez un mot : De |
Remplacer le @ d'une adresse mail avec la chaine "AT", afin d'avoir le comportement suivant :
|
Entrez une adresse :
tony.dujardin@lifl.fr |
Autre exemple d'exécution :
|
Entrez une adresse : bureau3@57 |
Faire les exercices du TD 2 à partir de l'exercice 3.