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+ex\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 Δ=b24ac\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 nNn\in\mathbb{N} et f:RRf : \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 :

bank=0nf(a+k(ba)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...