Et les intérêts ?
Gismonde place elle aussi son argent en banque, mais la situation est différente car sa banque lui verse tous les ans un taux d'intérêt de 2% en début d'année. De plus elle dépose toujours 1000€ sur le compte en cours d'année.
Le solde initial de son compte en banque est de 1500€. Disons que c'est l'année 0. Quelle est son épargne à la fin de la première année ? Au début de l'année les 1500€ sont augmentés de 2% et il faut ajouter les 1000€ déposés en cours d'année. Donc le montant de son épargne à la fin de la première année est : car les 2% s'appliquent au montant de l'année précédente.
- 1
Défini une variable
épargne
qui contient l'épargne initiale de Gismonde.Solution
L'épargne initiale est de 1500€
épargne = 1500
- 2
Quelle est l'épargne disponible sur le compte de Gismonde à la fin de la première année ? Donne la réponse dans une variable
épargne_1
Solution
épargne_1
est le résultat du calcul que l'on peut faire dans la console, et qui donneépargne = 1500 épargne_1 = 2530
- 3
Quelle est l'épargne disponible à la fin de la deuxième année ? Donne la réponse dans une variable
épargne_2
. Utilise la variableépargne_1
pour ton calculSolution
L'épargne en fin de deuxième année s'obtient en augmentant l'épargne en fin de première année de 2%, puis en ajoutant 1000. Donc
épargne_2
est le résultat du calcul qui donneépargne = 1500 épargne_1 = 2530 épargne_2 = 3580.6
- 4
Pour calculer l'épargne disponible dans plusieurs années, on va créer une boucle for pour incrémenter la variable
épargne
.Gismonde veut connaître son épargne à la fin de la cinquième année. Crée une boucle for qui parcoure les années et incrémente la variable
épargne
correctement. Tu peux mettre unprint
pour y voir plus clair.Solution
La boucle for doit incrémenter la variable
épargne
5 fois. On peut donc utiliserrange(5)
ourange(1,6)
car les deux séquences contiennent cinq valeurs, de 0 à 4 pour la première et de 1 à 5 pour la seconde.L'incrémentation de
épargne
est basée sur le même calcul que dans les questions précédentes : on augmente l'épargne de 2% et on ajoute 1000. Doncépargne = épargne + 2/100 * épargne + 1000
Pour connaître l'épargne à la fin de la cinquième année on utilise un
print
après la boucle for. Leprint
n'est pas indenté, comme ça il ne fait pas partie de la boucle et n'est exécuté qu'une fois la boucle terminée.épargne = 1500 épargne_1 = 2530 épargne_2 = 3580.6 for n in range(5): épargne = épargne + 2/100 * épargne + 1000 print(épargne)
- 5
Quel est l'épargne à la fin de la dixième année ?
Solution
On adapte le code de la question précédente pour qu'il y ait 10 itérations. Pour ça on peut utiliser
range(10)
ou encorerange(1,11)
. Dans le premier casrange(10)
génère la séquence de 0 à 9 inclus et dans le deuxième casrange(1,11)
génère la séquence de 1 à 10 inclus. Dans les deux cas la boucle for aura dix itérations.épargne = 1500 épargne_1 = 2530 épargne_2 = 3580.6 for n in range(1,11): épargne = épargne + 2/100 * épargne + 1000 print(épargne)
- 6
Comme il suffit de changer le
range
pour connaître l'épargne d'une année ultérieure, on va créer une fonction qui fait ça automatiquement.Je viens de définir la fonction
épargne_future
qui contient le même code qu'avant. J'ai simplement retiré les variablesépargne_1
etépargne_2
qui ne servent plus. J'ai aussi simplifié un peu la réassignation deépargne
.Observe l'éditeur pour t'assurer que le corps de la fonction
épargne_future
correspond bien à ce qu'il y avait avant.On veut que cette fonction prenne l'année en argument. Par exemple
épargne_future(15)
doit renvoyer l'épargne à la fin de l'année 15.Modifie la fonction
épargne_future
pour qu'elle prenne un argument et qu'elle renvoie l'épargne correspondante après calculs.Solution
On commence par donner un argument à la fonction
épargne_future
qui correspond au nombre d'années, disonsn
. Il faut éviter d'utiliser un nom de variable qui apparaît ailleurs dans le code, par exemple icik
est utilisé dans la boucle for.Cet argument va permettre d'adapter le nombre d'itérations. Pour avoir
n
itérations, on peut utiliserrange(n)
ourange(1, n+1)
par exemple.On utilise un
return
après la boucle for pour renvoyer la valeur deépargne
. Lereturn
est indenté dans la fonction mais pas dans la boucle for donc ne s'exécute qu'après la boucle. Leprint
n'est plus nécessaire, on peut l'enlever.def épargne_future(n): épargne = 1500 for k in range(n): épargne = épargne * 1.02 + 1000 return épargne
- 7
Si tu utilises la fonction
épargne_future
dans la console, il y a encore beaucoup de décimales. Utilises la fonctionround
pour arrondir le résultat renvoyé au centime.Solution
Il faut utiliser la fonction
round
pour arrondir. Commeprint
cette fonction est utilisable directement, il n'est pas nécessaire de l'importer depuis un module.La précision de
round
est contrôlée par le deuxième argument. Donc ici pour arrondir aux centimes il faut faireround(épargne, 2)
def épargne_future(n): épargne = 1500 for k in range(n): épargne = épargne * 1.02 + 1000 return round(épargne, 2)
- 8
Appelle ta fonction
épargne_future
dans la console pour prédire l'épargne disponible à la fin de l'année 15.Solution
>>> épargne_future(15) 19312.22