Dans cet exercice, nous allons créer une fonction qui calcule le montant total d'une addition en fonction d'un pourboire et d'une réduction :
-
Écrire une fonction Python
calculer_montant_final(prix_base, pourcentage_pourboire, reduction)qui calcule un montant final à partir d’un prix de base, d’un pourboire (en %) et d’une réduction (en %). -
La fonction doit d’abord ajouter le pourboire au prix, puis appliquer la réduction sur le nouveau montant.
-
Le résultat doit être arrondi à un chiffre après la virgule.
À noter
- Pour arrondir un nombre, vous pouvez utiliser la fonction
roundet lui passer en argument le nombre de décimales à garder.
Exemple attendu
calculer_montant_final(100, 15, 10)doit retourner103.5.
- Pour calculer une réduction en pourcentage, on utilise la formule suivante :
prix_final = prix_initial * (1 - pourcentage_reduction / 100).
code Code
def calculer_montant_final(prix_base, pourcentage_pourboire, reduction):
# 1) Ajouter le pourboire
prix_apres_pourboire = prix_base * (1 + pourcentage_pourboire / 100)
# 2) Appliquer la réduction en pourcentage
montant_final = prix_apres_pourboire * (1 - reduction / 100)
return round(montant_final, 1)
# Vérification avec l'exemple
resultat = calculer_montant_final(100, 15, 10)
print(resultat) # 103.5
comment Explications
La fonction prend trois paramètres: prix_base, pourcentage_pourboire et reduction. Les deux derniers sont exprimés en pourcentage. Pour appliquer un pourcentage p, on multiplie par (1 + p/100) pour augmenter, et par (1 - p/100) pour diminuer.
Étapes:
1) Ajouter le pourboire: pour 100 et 15%, on calcule 100 * (1 + 15/100) = 100 * 1.15 = 115.
2) Appliquer la réduction: pour 10%, on calcule 115 * (1 - 10/100) = 115 * 0.9 = 103.5.
3) Retourner le résultat final (un float), ici 103.5.
L’ordre est important: on ajoute d’abord le pourboire, puis on applique la réduction sur ce nouveau montant. C’est ce qui permet d’obtenir le résultat attendu de 103.5 pour l’exemple (100, 15, 10).
star Points importants
- Une fonction avec paramètres rend le code beaucoup plus flexible
def calculer_montant_final(prix_base, pourcentage_pourboire, reduction):
# 1) Ajouter le pourboire
prix_apres_pourboire = prix_base * (1 + pourcentage_pourboire / 100)
# 2) Appliquer la réduction en pourcentage
montant_final = prix_apres_pourboire * (1 - reduction / 100)
return round(montant_final, 1)
# Vérification avec l'exemple
resultat = calculer_montant_final(100, 15, 10)
print(resultat) # 103.5Console
Un instant...
Résultats
Test avec pourboire 15% et réduction 10%
resultat = calculer_montant_final(100, 15, 10) assert resultat == 103.5, 'Pour un prix de base de 100, pourboire 15% et réduction 10%, le résultat devrait être 103.5.'
Test sans pourboire ni réduction
resultat = calculer_montant_final(200, 0, 0) assert resultat == 200, 'Pour un prix de 200 sans pourboire ni réduction, le résultat devrait être 200.'
Test avec pourboire seulement
resultat = calculer_montant_final(150, 20, 0) assert resultat == 180, 'Pour un prix de 150 et un pourboire de 20%, le résultat devrait être 180.'
Test avec réduction seulement
resultat = calculer_montant_final(100, 0, 20) assert resultat == 80, 'Pour un prix de 100 sans pourboire mais avec une réduction de 20%, le résultat devrait être 80.'
Test avec pourboire et forte réduction
resultat = calculer_montant_final(50, 10, 50) assert resultat == 27.5, 'Pour un prix de 50, pourboire 10% et réduction 50%, le résultat doit être 27.5.'
Bravo, tu as réussi cet exercice de code 🥳
Envoyer ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Ma solution :
