Python au lycée (3) : Les boucles Exercices

Python : Au bout de combien d’années le capital double-t-il ?

Durée estimée
15 minutes
Difficulté
Votre progression

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

Créer un compte

Objectifs travaillés

Le 1ᵉʳ janvier 2025, Lou place $ 5~000 $ € sur un livret rémunéré au taux annuel de $ 3{,}5~\% $. Chaque année, au 1ᵉʳ janvier, les intérêts sont ajoutés au capital : le capital est ainsi multiplié par $ 1{,}035 $.

  1. Vérifier que le capital de Lou s'élève à $ 5~175 $ € au 1ᵉʳ janvier 2026.
  2. On souhaite déterminer l'année à partir de laquelle le capital de Lou dépassera $ 10~000 $ €. Expliquer pourquoi on ne peut pas répondre à cette question avec une boucle for.
  3. Compléter le programme Python ci-dessous pour qu'il affiche le nombre d'années nécessaires pour que le capital dépasse $ 10~000 $ €.

    capital = 5000
    n = 0
    while ... :
        capital = ...
        n = ...
    print(n)
  4. Écrire une fonction duree(C, t, S) qui renvoie le nombre d'années nécessaires pour qu'un capital initial $ C $ placé au taux annuel $ t~\% $ dépasse la somme $ S $.
    Vérifier que l'appel duree(5000, 3.5, 10000) donne bien le résultat de la question 3.

Corrigé

  1. Au 1ᵉʳ janvier 2026, le capital vaut $ 5~000 \times 1{,}035 = \mathbf{5~175} $ €.
  2. On ne connaît pas à l'avance le nombre d'années à attendre : il faut répéter la multiplication par $ 1{,}035 $ tant que le capital reste inférieur à $ 10~000 $ €. Une boucle while est donc adaptée.
  3. À chaque passage dans la boucle, on multiplie le capital par $ 1{,}035 $ et on incrémente le compteur $ n $ :

    capital = 5000
    n = 0
    while capital < 10000:
        capital = capital * 1.035
        n = n + 1
    print(n)

    Ce programme affiche $ 21 $.
    Vérification : au bout de $ 20 $ ans, le capital vaut $ 5~000 \times 1{,}035^{20} \approx 9~948{,}94 $ € (encore inférieur à $ 10~000 $ €). Au bout de $ 21 $ ans, il vaut $ 5~000 \times 1{,}035^{21} \approx 10~297{,}16 $ €, ce qui dépasse $ 10~000 $ €.
    Le capital de Lou dépassera donc $ 10~000 $ € au bout de $ 21 $ ans, c'est-à-dire le 1ᵉʳ janvier 2046.

  4. On remplace les valeurs numériques par les paramètres C, t et S :

    def duree(C, t, S):
        capital = C
        n = 0
        while capital < S:
            capital = capital * (1 + t / 100)
            n = n + 1
        return n

    Test :

    >>> duree(5000, 3.5, 10000)
    21

→ Pour réviser : Choisir entre une boucle for et une boucle while