- TD1 : Module : Algorithmique et programmation. Langage : Python -
INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 1/9
TD1 : Les bases de Python : input(), print(), = , if, for, while.
Thème : Emprunt bancaire.
1 - Présentation de SPYDER
SPYDER pour Scientific PYthon Development EnviRonment est un Environnement Intégré de
Développement (IDE) pour le calcul Scientifique utilisant le langage de programmation Python. En d'autres
termes, vous pourrez développer en Python grâce à ce logiciel libre et gratuit
qui propose plusieurs outils (un package) pour faciliter le développement de
code Python. Nous utilisons la version 3.X de Python.
Vous pouvez télécharger Spyder ici : https://www.continuum.io/downloads
Il est livré avec un éditeur pour écrire du code, une console pour saisir les données et voir les résultats,
un explorateur de variables pour voir les valeurs des variables lors de l'exécution et plusieurs autres
services pour aider à développer efficacement des programmes pour un scientifique.
Démarrer Spyder : Menu Démarrer > Anaconda > Spyder. Vous pouvez aussi faire un clic-droit sur Spyder
et utiliser (suivant votre système d'exploitation) Epingler au menu Démarrer pour avoir ce raccourci accessible
dans Démarrer.
Nous allons paramétrer quelques depuis le menu Outils > Préférences ou par
- :
- > Options avancées :
-:
-
Fermer les préférences.
Nous allons définir les affichages depuis le menu Affichage > Volets :
Nous allons définir les barres d'outils depuis Affichage > Barres outils : ajouter
Réinitialiser affichage de fenêtres : Affichage > Réinitialiser disposition fenêtres
1. Le volet de
gauche sert à éditer
des fichiers de
programmes
2. Le volet en haut
à droite donne des
informations
(documentations,
valeurs des variables,
liste des fichiers)
3. Le volet en bas à
droite est la zone
d'exécution où
s'affichent les
données saisies et
les résultats des
programmes
- TD1 : Module : Algorithmique et programmation. Langage : Python -
INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 2/9
Nous utiliserons notamment pour commenter, indenter et désindenter une ou plusieurs lignes.
Un commentaire commence par #, est écrit en vert et peut être en début de ligne ou après du code.
#1.définir des données :
mensualite = 500 # mensualité est affectée de 500
Indenter consiste à décaler une ligne par rapport à la marge gauche, c'est obligatoire pour structurer les
if, else, for, while, Spyder gère l'indentation le plus souvent automatiquement, si besoin, utiliser la
touche TAB de tabulation qui est paramétré avec 4 espaces dans les préférences de l'éditeur.
for numPaiement in range (1 , nbMois + 1) : #afficher les informations du mois numPaiement
partInteret = … # cette ligne est indentée automatiquement de 4 espaces
Si Spyder 'Plante', utiliser dans le volet 'Console IPhyton' en bas ce bouton puis Redémarrer le noyau
2 - TD : Initiation à Spyder
On peut utiliser Spyder suivant 2 modes d'exécution :
a) le mode interactif : taper dans la console IPython en bas à droite de l'écran des expressions comme
ci-dessous à l'invite In[x]. La fenêtre 'Exploration de variables' affichera comme ci-dessous.
Les commandes sont exécutées une à une. Ce ne sera pas le mode que nous utiliserons principalement.
Certaines commandes sont particulières comme l'aide sur un élément du langage Python :
Ci-dessous, help sur la commande print
b) le mode programme : c'est le mode classique qui permet d'exécuter toutes les lignes d'un programme.
Ouvrir le fichier CalculerMensualiteRemboursement.py puis exécutez ce programme par le bouton
Attention, le curseur est maintenant par défaut au début de la première ligne du programme
alors que la console nous invite à saisir le Capital. Il faut cliquer ici pour saisir.
- TD1 : Module : Algorithmique et programmation. Langage : Python -
INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 3/9
Saisir les données et consulter les résultats. La fenêtre 'Explorateur de variables' affiche comme ci-dessous.
Le calcul de la mensualité utilise l'opérateur ** pour élever un nombre à une puissance : 2**3 = 8.
L'affichage de la mensualité 856.0748178846737 montre trop de décimales, nous verrons plus loin
comment se limiter à 2 décimales et afficher l'unité .
Vous pouvez obtenir de l'aide autrement qu'avec le help( ) de la console vu précédemment.
Vous positionnez le curseur sur un mot du code dans l'éditeur comme ci-contre
sur float de la ligne 16 et vous saisissez CTRL I pour ouvrir l'inspecteur
d'objet sur le mot float comme ci-dessous.
Vous pouvez aussi choisir pour Source "Console" et saisir input par exemple pour de l'aide.
Vous pouvez aussi voir le menu Aide de Spyder
Voir aussi :
https://docs.python.org/3.4/
https://docs.python.org/3.4/tutorial/index.html
http://python.developpez.com/
http://inforef.be/swi/download/apprendre_python3_5.pdf (pdf en français qui nous sert de référence)
Fermer CalculerMensualiteRemboursement.py par clic sur la croix
Vous pouvez enfin sélectionner l'onglet 'Explorateur de fichiers' pour voir et ouvrir par double-clic des
programmes. Paramétrer votre répertoire de travail de la 1° ligne de l'écran :
- TD1 : Module : Algorithmique et programmation. Langage : Python -
INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 4/9
2.1 - Exercice 1 : Afficher les remboursements par an.
Ouvrir le programme AfficherTableauRemboursementEmprunt.py .
Exécuter ce programme par le bouton et saisir les 3 données : (pensez à bien positionner le curseur)
Capital : 10000 (Euros) ; Durée : 1 (an) ; Taux d'intérêt annuel : 5 (%) (Voir ci-dessous).
Précisions sur la saisie :
- La saisie classique est écrite en Python ainsi :
capital = float (input ('Capital emprunté en Euros : ') )
- On peut proposer une saisie avec une valeur utilisée par défaut (10000) si on valide la saisie sans valeur :
capital = float (input ('Capital emprunté [10000 €] : ') or 10000)
Le message devient donc 'Capital emprunté [10000 €] : ' pour montrer à l'utilisateur la valeur 10000 par
défaut et le input ( ) est complété par or 10000 pour définir véritablement la valeur par défaut.
Noter ci-dessous qu'à la saisie du capital, la valeur 10000 n'est pas affichée après ":".
Le programme affiche 3 résultats :
Mensualité : 856.07 € ; Taux d'intérêt global : 2.7% et le tableau des remboursements mensuels.
Explication des calculs de la première ligne du tableau :
- 1 est le rang du mois.
- 41.67 est la part d'intérêt pour le mois calculé sur la base du capital restant encore à rembourser (tout pour
le premier mois mais ensuite il diminue) multiplié par le taux d'intérêt mensuel car on paye tous les mois.
- 814.41 est la part du capital remboursé pour le mois calculé par soustraction : mensualité - part intérêt du
mois courant calculée précédemment.
- 9185.59 est le capital restant après avoir remboursé les 814.41 précédents. 10000 - 814.41 et de manière
plus générale pour un mois quelconque : capital restant du mois précédent part capital du mois courant
On calcule en fin de tableau :
- 272.90 qui est la somme de toutes les lignes de la part de l'intérêt versé.
- 10000.00 qui est la somme de toutes les lignes de la part du capital remboursé. On a donc bien remboursé
tout le capital emprunté.
Le principe pour gérer le tableau de remboursement est donc le suivant:
Initialiser avant la boucle capitalRestant = capital
Boucle for numPaiement in range (1, nbMois + 1) :
Calculer partInteret =
cumulCapital =
Afficher les résultats du mois courant print ( )
Afficher les résultats finaux print ( )
- TD1 : Module : Algorithmique et programmation. Langage : Python -
INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 5/9
Pour afficher le tableau en colonnes bien alignées, on a utilisé le caractère de tabulation défini ainsi :
TAB = "\t" # caractère spécial correspondant à la tabulation
On l'utilise pour la ligne de titre en indiquant que le séparateur "," de print doit utiliser TAB donc "\t" :
print ("Num" , "Part Intérêt" , "Part capital" , "Capital restant", sep = TAB)
: ici représente une tabulation.
Classiquement, la virgule de print génère un espace séparateur par défaut à l'affichage.
print ("Taux d'intérêt global :", format(tauxGlobal,".1%"))
Taux d'intérêt global : 2.7%
L'affichage des résultats utilise aussi TAB avec en plus \ qui indique que l'instruction se poursuit sur la
ligne suivante. Attention : ne rien saisir après le \ même pas des espaces.
print (numPaiement , format(partInteret,"8.2f"), \
format(partCapital,"8.2f"),format(capitalRestant,"8.2f"), sep=TAB)
La fonction format (partInteret,"8.2f") permet ci-dessus de préciser que l'affichage sera fait sur
8 positions dont 1 pour le point décimal et 2 positions pour les décimales, (il reste donc 5 positions pour la
partie entière) cela pour le type f pour float donc réel. On passe donc d'un affichage basique :
print (partInteret) de 41.666666666666664 à 41.67 avec arrondi de .666 à .67 .
Fermer le programme AfficherTableauRemboursementEmprunt.py .
Avec l'explorateur de fichier Windows, dupliquer ce fichier par copier / coller et renommer la copie :
AfficherRecapitulatifAnnuelRemboursementEmprunt.py puis ouvrir ce programme pour le modifier
ainsi :
On souhaite ne pas afficher les résultats par mois mais par année, une fois tous les 12 mois.
Pour cela, à l'exécution, on saisira explicitement une durée de 3 ans par exemple comme ci-dessous.
En année 2 :
- 265.94 est donc le cumul des intérêts des 12 derniers mois.
- 3330.57 est donc le cumul du capital remboursé des 12 derniers mois.
Nous gérerons plus tard (éventuellement) les pourcentages de répartition entre Part intérêt (7%) et Part
capital remboursé (93%) pour chaque année.
On remarque que la Part Intérêt diminue (12% puis 7% puis 3%) au fil des années, normal, notre dette diminue
au fil des remboursements (3168.46, 3330.57 puis 3500.97) donc la Part Intérêt diminue logiquement.
Je propose de modifier la saisie de la durée avec 3 par défaut pour faciliter les exécutions répétitives de ce
programme :
duree = int (input ("Durée de l'emprunt [3 ans] : ") or 3)
Nous continuons à faire les calculs tous les mois comme précédemment mais nous n'affichons que tous les
12 mois soit si numPaiement est divisible par 12 soit numPaiement % 12 = = 0 (l'opérateur % donne le reste de
la division à quotient entier de numPaiement divi12). Si le reste de la division = = 0 alors numPaiement est divisé
par 12 pour obtenir à la fin du 12° mois "An=1". Remarquez le = = de comparaison différent du = d'une
affectation (a = 1).
Modifier et compléter le programme AfficherRecapitulatifAnnuelRemboursementEmprunt.py pour
gérer cet objectif.
Cumul des 12
valeurs mensuelles
= valeur annuelle.
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !