Python au lycée (4) : Les fonctions Méthode

Programmer une fonction mathématique en Python

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Méthode

Pour traduire une fonction mathématique $f$ en fonction Python :

  1. Choisir le nom de la fonction Python (souvent f, g…) et un nom de paramètre (x).
  2. Écrire l'en-tête : def f(x) :.
  3. Traduire la formule en langage Python : remplacer $\dfrac{a}{b}$ par a / b, $x^n$ par x ** n, $\sqrt{\,}$ par x ** 0.5 ou math.sqrt(x), etc.
  4. Utiliser un if … else si la fonction est définie par morceaux.
  5. Renvoyer le résultat avec return.
  6. Tester la fonction sur plusieurs valeurs avec print(f(...)).

Fonction affine

Soit $f$ la fonction définie sur $\mathbb{R}$ par $f(x) = -2x + 5$.

def f(x) :
    return -2 * x + 5

print(f(0))     # affiche 5
print(f(3))     # affiche -1
print(f(-1))    # affiche 7

Étape 1 : On identifie la formule : $f(x) = -2x + 5$.

Étape 2 : On la traduit : return -2 * x + 5 (ne pas oublier le signe * de multiplication entre $-2$ et $x$).

Étape 3 : Tests : $f(0) = 5$, $f(3) = -6 + 5 = -1$, $f(-1) = 2 + 5 = 7$. Les trois appels renvoient les valeurs attendues.

Fonction définie par morceaux

Soit $g$ la fonction définie par :

$g(x) = x^2$ si $x \leqslant 0$, et $g(x) = 2x + 1$ si $x > 0$
def g(x) :
    if x <= 0 :
        return x ** 2
    else :
        return 2 * x + 1

print(g(-3))    # affiche 9
print(g(0))     # affiche 0
print(g(4))     # affiche 9

Étape 1 : Deux morceaux, séparés par $x = 0$. On utilise if … else dans la fonction.

Étape 2 : Le premier return est exécuté si $x \leqslant 0$. Dès qu'il est exécuté, la fonction s'arrête.

Étape 3 : Tests :

  • $g(-3) = (-3)^2 = 9$ (premier morceau)
  • $g(0) = 0^2 = 0$ (premier morceau, car inégalité large sur 0)
  • $g(4) = 2 \times 4 + 1 = 9$ (second morceau)

Étape 4 : Comparaison avec un calcul manuel pour vérifier.

Racine carrée avec le module math

Soit $f(x) = \sqrt{x} + 1$, définie pour $x \geqslant 0$.

from math import sqrt

def f(x) :
    return sqrt(x) + 1

print(f(9))     # affiche 4.0
print(f(16))    # affiche 5.0

Étape 1 : On importe la fonction sqrt du module math.

Étape 2 : Dans la définition, sqrt(x) calcule $\sqrt{x}$.

Étape 3 : $f(9) = \sqrt{9} + 1 = 3 + 1 = 4$. Python renvoie 4.0 (type float).

Attention

Deux erreurs fréquentes lors de la traduction :

  • Oublier l'opérateur de multiplication : écrire 2x provoque une erreur en Python. Il faut écrire 2 * x.
  • Utiliser ^ pour la puissance : l'opérateur de puissance est **. x^2 ne calcule pas le carré en Python.

Pour s'entraîner