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_lignerenvoie deux valeurs (sous_totalettotal), decomposées à l'appel comme vu dans la leçon sur les retours multiples.remise_fixeest passée en argument àfacturersans être appelée directement (comme vu dans la leçon précédente) : c'estfacturerqui decide quand l'appeler, pour chaque ligne.remise_fn(...)sert d'argument par défaut implicite au paramètreremisedecalculer_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