Une fonction est une structure qui permet de grouper des instructions sous un nom (le nom de la fonction) et de les exécuter par appel de cette fonction.
Les fonctions sont définies par l'instruction def et sont appelées par leur nom suivi de parenthèses. Les parenthèses déclarent les paramètres attendus.
In [ ]:
def print_something():
print("Something")
print_something()
print_something
n'attends pas de paramètre. Vous pouvez l'appeler dans la cellule suivante (après avoir exécuté la cellule précédente afin que la fonction soit connue dans le notebook actuel).
In [ ]:
Les fonctions peuvent avoir des paramètres. Vous pouvez tester la fonction suivante en lui passant un paramètre.
In [ ]:
def print_param(param_to_print):
print("exécuté avec", param_to_print)
In [ ]:
In [ ]:
Éxécutez cette fonction avec différents paramètres
In [ ]:
Avez vous essayé d'appeler cette fonction avec le paramètre "2"
? Que se passe-t-il ?
In [ ]:
Si le comportement est incohérent, corrigez la fonction pour qu'il ne le soit plus.
In [ ]:
In [ ]:
Une bonne fonction ne fait qu'une seule chose (et la fait bien). Notre fonction en fait 2 : elle calcule une valeur et l'affiche. Ceci est une mauvaise pratique car :
Il est donc préférable qu'une fonction qui calcule une valeur retourne cette valeur. Redefinissez la fonction ci-dessous pour qu'elle retourne cette durée.
In [ ]:
Et écrivez l'instruction ci-dessous qui affiche la durée en heure d'une formation de 2 jours à l'aide de cette fonction.
In [ ]:
La fonction précédente a été écrite dans le contexte fonctionnel de la formation. Mais nous pouvons la généraliser pour calculer une durée unitaire totale. Écrivons donc une fonction duration_for
qui prendra en paramètre une quantité. Nous pouvons ajouter un paramètre pour la durée unitaire qui aura une valeur par défaut.
Écrivez donc cette fonction duration_for(how_many: int, unit_duration=7)
que nous allons pouvoir réutiliser.
In [ ]:
Vous pouvez évidemment observer que cette fonction se comporte de la même manière ci-dessous.
In [ ]: