Institut Supérieur De Gestion - Sousse- 3ème LIG
Mme Hochlef Neila page- 37
Bien que les éléments de la liste divers soient tous de types différents (une chaîne de caractères, un entier, un réel,
une liste), on peut affecter successivement leurs contenus à la variable e, sans qu'il s'ensuive des erreurs (ceci est
rendu possible grâce au typage dynamique des variables Python).
6-5-4. Appartenance d'un élément à une séquence. L'instruction in utilisée seule
L'instruction in peut être utilisée indépendamment de for, pour vérifier si un élément donné fait partie ou non d'une
séquence. Vous pouvez par exemple vous servir de in pour vérifier si tel caractère alphabétique fait partie d'un
groupe bien déterminé :
car = "e"
voyelles = "aeiouyAEIOUY"
if car in voyelles:
print (car, "est une voyelle")
D'une manière similaire, vous pouvez vérifier l'appartenance d'un élément à une liste :
n = 5
premiers = [1, 2, 3, 5, 7, 11, 13, 17]
if n in premiers:
print (n, "fait partie de notre liste de nombres premiers")
Note : Cette instruction très puissante effectue donc à elle seule un véritable parcours de la séquence. À titre
d'exercice, écrivez les instructions qui effectueraient le même travail à l'aide d'une boucle classique utilisant
l'instruction while.
6-5-5. Les chaînes sont des séquences non modifiables
Vous ne pouvez pas modifier le contenu d'une chaîne existante. En d'autres termes, vous ne pouvez pas utiliser
l'opérateur [] dans la partie gauche d'une instruction d'affectation. Essayez par exemple d'exécuter le petit script
suivant (qui cherche à remplacer une lettre dans une chaîne) :
salut = 'bonjour à tous'
salut[0] = 'B'
print salut
Au lieu d'afficher « Bonjour à tous », ce script « lève » une erreur du genre : « TypeError: object doesn't support item
assignment ». Cette erreur est provoquée à la deuxième ligne du script. On y essaie de remplacer une lettre par une
autre dans la chaîne, mais cela n'est pas permis.
Par contre, le script ci-dessous fonctionne :
salut = 'bonjour à tous'
salut = 'B' + salut[1:]
print salut
Dans cet autre exemple, en effet, nous ne modifions pas la chaîne salut. Nous en re-créons une nouvelle avec le
même nom à la deuxième ligne du script (à partir d'un morceau de la précédente, soit, mais qu'importe : il s'agit bien
d'une nouvelle chaîne).
6-5-6. Les chaînes sont comparables
Tous les opérateurs de comparaison dont nous avons parlé à propos des instructions de contrôle de flux (c'est-à-dire
les instructions if ... elif ... else) fonctionnent aussi avec les chaînes de caractères. Cela vous sera très utile pour
trier des mots par ordre alphabétique :
mot = input("Entrez un mot quelconque : ")
if mot < "limonade":
place = "précède"
elif mot > "limonade":
place = "suit"
else:
place = "se confond avec"
print "Le mot", mot, place, "le mot 'limonade' dans l'ordre alphabétique"
Ces comparaisons sont possibles, parce que les caractères alphabétiques qui constituent une chaîne de caractères
sont mémorisés dans la mémoire de l'ordinateur sous forme de nombres binaires dont la valeur est liée à la place
qu'occupe le caractère dans l'alphabet. Dans le système de codage ASCII, par exemple, A=65, B=66, C=67, etc.
En fait, il existe plusieurs systèmes de codage : les plus connus sont les codages ASCII et ANSI, assez proches l'un de
l'autre sauf en ce qui concerne les caractères particuliers spécifiques des langues autres que l'anglais (caractères