PaliSkill
Python intermédiaire

Leçon 9 / 9 — Chapitre 2: Fonctions avancées

Cas pratique : un petit module de facturation

Cette dernière leçon combine paramètres par défaut, retours multiples et fonction passée en argument, dans un petit calcul de facturation.

def calculer_ligne(prix_unitaire, quantite, remise=0):
    sous_total = prix_unitaire * quantite
    total = sous_total - remise
    return sous_total, total

def facturer(lignes, remise_fn):
    total_general = 0
    for prix_unitaire, quantite in lignes:
        sous_total, total = calculer_ligne(prix_unitaire, quantite, remise_fn(prix_unitaire * quantite))
        total_general = total_general + total
    return total_general

def remise_fixe(sous_total):
    return 5 if sous_total > 50 else 0

lignes = [(5, 12), (8, 3)]
print(facturer(lignes, remise_fixe), "$")

Ce que fait chaque partie :

  • calculer_ligne renvoie deux valeurs (sous_total et total), decomposées à l'appel comme vu dans la leçon sur les retours multiples.
  • remise_fixe est passée en argument à facturer sans être appelée directement (comme vu dans la leçon précédente) : c'est facturer qui decide quand l'appeler, pour chaque ligne.
  • remise_fn(...) sert d'argument par défaut implicite au paramètre remise de calculer_ligne, calcule differemment pour chaque ligne selon son sous-total.

Avec ces deux lignes (60 $ et 24 $ de sous-total), la première depasse 50 $ et recoit une remise de 5 $ (total 55 $), la seconde n'a pas de remise (total 24 $) : le total général affiche est 79 $.

A vous de jouer : ajoutez une troisième ligne à lignes avec un sous-total superieur à 50 $, et vérifiez qu'elle recoit bien la remise de 5 $ dans le total final.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 85 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès