Aller au contenu principal

Fonctions

Une fonction permet de regrouper des instructions et de les réutiliser :

  • elle permet de réduire la redondance de code
  • elle permet de rendre le code plus lisible, en séparant les différentes tâches avec des noms explicites

Définition et utilisation​


Une fonction, comme en mathématiques, prend un ou plusieurs arguments (ou : paramètres, entrées) et renvoie une valeur de retour.

Voici une fonction f qui possède en argument un nombre xx (entier ou flottant) et renvoie x2x^2 :

Loading...

Les instructions indentées après le : constituent le corps de la fonction.
f(2) est un appel de fonction, qui définit une variable x de valeur 2 et exécute le corps de la fonction f.
x**2 est calculé, ce qui donne la valeur 4 qui est renvoyée par f.
print(f(2)) va devenir print(4) et afficher 4.

Question

Écrire une fonction sigmoide(x) renvoyant 11+e−x\frac{1}{1+e^{-x}}.
On utilisera la fonction exp de la bibliothèque math

Loading...

Il est possible d'appeler plusieurs fonctions à la suite. Par exemple, f(g(5)) va d'abord appeler g(5) puis f avec le résultat de g(5) comme argument.

Question

Quel sera le résultat de f(g(5)) avec les fonctions suivantes ?
Devinez le résultat puis vérifier avec print.

Loading...
return ou print ?

Contrairement à return, il n'est pas possible de récupérer la valeur affichée par print.
Pour pouvoir réutiliser une fonction, il est donc préférable d'utiliser return.

Variable locale​

Dans la fonction f précédente, x est une variable locale : elle n'existe que dans le corps de la fonction. On ne peut donc pas y accéder en dehors de la fonction.
C'est l'analogue d'une variable muette xx dans une intégrale ∫abf(x)dx\int_a^b f(x) dx en mathématiques.

De même, toute variable définie à l'intérieur d'une fonction est locale à cette fonction :

Loading...

Fonction à plusieurs arguments​

Une fonction peut prendre plusieurs arguments, séparés par des virgules :

Loading...
Question

Écrire une fonction delta(a, b, c) renvoyant Δ=b2−4ac\Delta = b^2 - 4ac (discriminant d'une équation du second degré ax2+bx+c=0ax^2+bx+c=0).

Loading...

Fonction en argument​

Il est possible d'avoir une fonction en argument d'une autre fonction :

Loading...

Ainsi, derive prend trois arguments, dont f qui est une fonction.

Question

Si n∈Nn\in\mathbb{N} et f:R→Rf : \mathbb{R} \to \mathbb{R} est une fonction continue, définie sur [a,b][a,b] alors on peut approximer ∫abf(x)dx\int_a^b f(x) dx par la somme de Riemann :

b−an∑k=0nf(a+k(b−a)n)\frac{b-a}{n}\sum_{k=0}^n f(a + k\frac{(b-a)}{n})

Écrire une fonction riemann(f, a, b, n) qui renvoie cette approximation.

Loading...