Dans les programmes que nous avons écrits jusqu’ici, nous nous sommes servis de nombreuses fonctions comme print(), input(), len() etc… Ces fonctions sont dites prédéfinies, car elles sont déjà disponibles dans le langage de programmation et nous pouvons les invoquer au besoin quand nous voulons.
Factoriser le code et éliminer la redondance
Il se trouve parfois qu’on a un bout de code qui se répète à plusieurs endroits dans notre programme. On parle dans ce cas de code redondant. Bien que la redondance ne soit pas forcément une mauvaise chose, car elle n’empêche pas le programme de s’exécuter correctement, elle fait quand même partie des pratiques à éviter en programmation.
En effet, un code redondant rend le programme plus long car il y a les mêmes suites d’instructions qui se répètent plusieurs fois à des endroits différents. En plus, si un jour on veut modifier le comportement de ce code redondant, alors il faut appliquer cette modification à plusieurs endroits, ce qui pourrait être source d’erreur ou d’oubli, sans oublier le temps qu’il faut consacrer à toutes ces modifications-là.
La solution consiste à factoriser le code redondant. C’est-à-dire l’écrire une seule fois dans un seul endroit, et en cas de besoin, on va juste l’invoquer dans d’autres endroits sans recoder les mêmes instructions. Pour factoriser le code on utilise les fonctions.
Notez qu’on ne parle pas cette fois de fonctions prédéfinies comme print() ou input(), mais des fonctions personnalisées que nous créerons nous même selon notre besoin.
Une fonction a généralement la forme suivante:
def f(arg):
return résultat
Notez que l'on doit indenter tout le corps de la fonction (comme c'est le cas pour les structures conditionnelles et itératives).