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 round et lui passer en argument le nombre de décimales à garder.

Exemple attendu

  • calculer_montant_final(100, 15, 10) doit retourner 103.5.
Afficher l'aide
  • 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.5

Console

Un instant...
terminal

Résultats

/ 5 tests validés

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é 👇

Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.

Ma solution :

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.