Livre_silo 30 août 2013 16:32 Page 114
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
114
Informatique pour tous
On souhaite écrire un programme qui affiche de la manière suivante les horaires de trois
trains pour Brest, Strasbourg et Toulouse :
Le train en direction de Brest partira à 9h
--------------------------------------------------------Le train en direction de Strasbourg partira à 9h30
--------------------------------------------------------Le train en direction de Toulouse partira à 9h45
--------------------------------------------------------On peut écrire pour cela le programme suivant :
print("Le train en direction de", "Brest", "partira à", "9h")
print("---------------------------------------------------------")
print("Le train en direction de", "Strasbourg", "partira à", "9h30")
print("---------------------------------------------------------")
print("Le train en direction de", "Toulouse", "partira à", "9h45")
print("---------------------------------------------------------")
Dans ce programme, on fait trois fois la même chose : on affiche la chaîne
"Le train en direction de", puis la destination, puis la chaîne "partira à", puis l’horaire et
enfin la ligne de séparation. Répéter plusieurs fois la même chose dans un programme
n’est pas souhaitable. En particulier, si on procède par copier-coller, alors toute erreur sera
dupliquée autant de fois. Si par exemple on fait une faute d’orthographe à "partira", alors
il faudra la corriger trois fois. De même, si on souhaite modifier le comportement du programme, par exemple pour afficher des étoiles à la place des tirets, alors il faudra effectuer
la modification à trois endroits dans le code. Ici, une solution pour éviter la duplication
consiste à utiliser une boucle for qui parcourt une liste de paires destination-horaire :
for (d, h) in [("Brest", "9h"), ("Strasbourg", "9h30"), ("Toulouse", "9h45")]:
print("Le train en direction de", d, "partira à", h)
print("---------------------------------------------------------")
Ainsi, pour chaque couple d’une destination d et d’un horaire h, on effectue les deux instructions suivantes :
print("Le train en direction de", d, "partira à", h)
print("---------------------------------------------------------")
Cela ne suffit pas nécessairement à éliminer toute redondance. En effet, on peut imaginer
avoir besoin d’afficher un départ de train à un autre endroit du programme. Il faudrait alors
copier les deux instructions, avec les valeurs de d et h pertinentes. Ce qu’il nous faut donc,
c’est un moyen d’isoler ces deux instructions. C’est exactement ce que permet de faire une
fonction.
Précédent

- 127/402

Suivant