Avancer

Section 2.1 Syntaxe : def / return

En algorithmique comme en mathématiques, une fonction peut être vue comme une boîte noire qui renvoie un ou plusieurs résultats en sortie, dépendant des éléments qui lui ont été donnés en entrée.

En Python, les mots-clés qu'on utilise pour définir une fonction sont les suivants.

  • def ... : annonce le début de la définition.
  • return annonce la chose à renvoyer.
Remarque 2.1.1.

Comme pour les boucles et les conditionnelles, les deux-points : annoncent une indentation (4 espaces fortement recommandés). Notez aussi que le return doit faire partie du bloc indenté.

Voici un premier exemple permettant de définir la fonction quadratique

\begin{equation*} f(x) = x^2-4x+2. \end{equation*}

Évaluez la cellule précédente et vérifiez que rien ne s'affiche. Puis faites afficher la valeur de

\begin{equation*} y = f(5) \end{equation*}

en évaluant la cellule suivante.

Remarque 2.1.2.

Une fonction Python sans return peut quand même afficher des choses quand on l'appelle, même si elle ne renvoie rien à proprement parler.

Le code ci-dessus affiche

  • \(\text{7}\) parce que la commande y = f(5) fait appel à la fonction f(x) et exécute donc print(x ** 2 - 4 * x + 2) pour x valant 5;

  • et \(\text{None}\) parce que la fonction f(x) ne renvoie rien, donc la variable y reste vide, de sorte que print(y) affiche \(\text{None}\text{.}\)

Codons ensuite la fonction valeur absolue qui peut être définie comme suit :

\begin{equation*} x\longmapsto \begin{cases} x&\text{si}\;x\geq 0,\\ -x&\text{sinon.} \end{cases} \end{equation*}

Nous allons l'appeler valeurAbsolue, et la tester avec print(valeurAbsolue(5)) et print(valeurAbsolue(-7)) qui doivent afficher respectivement \(\text{5}\) et \(\text{7}\text{.}\)

Cliquez sur Next autant de fois que nécessaire dans l'application Python Tutor si vous voulez suivre pas à pas l'exécution du code qui précède.

Terminons cette section avec la fonction factorielle. Pour \(n\geq 1\text{,}\) on rappelle que

\begin{equation*} n!=1\cdot 2\cdot 3\cdots n. \end{equation*}

La fonction factorielle(n) ci-après calcule n! à l'aide d'une boucle for. On la teste avec print(factorielle(5)) qui doit afficher \(\text{120}\) puisque

\begin{equation*} 5!=1\cdot 2\cdot 3\cdot 4\cdot 5=120. \end{equation*}

Cliquez sur Next autant de fois que nécessaire dans l'application Python Tutor si vous voulez suivre pas à pas l'exécution du code qui précède.