IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

logique , tout simplement ! [Débutant(e)]


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut logique , tout simplement !
    Bonjour, dans le cours de Swinnen, il est un exercice :Écrivez un programme qui calcule les intérêts accumulés chaque année pendant 20 ans, par capitalisation d'une
    somme de 100 euros placée en banque au taux fixe de 4,3 %
    je vois bien la logique mais je ne parviens pas à me la figurer en langage informatique(les autres me paraissaient simple et là ...je cale.
    Je vois bien
    a= 100*0.043+100=104.30
    b= a*0.043+a
    c= b*0.043 +b
    etc ...alors peut être la chaleur ou Alzheimer mais je ne vois pas
    Merci de votre aide

    Je sais , j'ai honte, mais je suis sur que vous avez du commencer un jour aussi...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a,i =100,0
    while i<20:
        a =(a*0.043)+ a
        i=i+1
        print(a)
    cela fonctionne mais est-ce le mieux?

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il n'y a vraiment pas de quoi avoir honte! Et le cours de swinnen est excellent pour apprendre.

    Pour ton code: puisqu'on connait exactement le nombre de boucles qu'il faut avoir (=20), il vaut mieux utiliser "for" que "while":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a = 100
    for i in range(20):
        a += a*0.043
        print a
    Pour "a += a*0.043": c'est équivallent à "a = a+a*0.043".

    On aurait pu aussi écrire "a *= 1.043" pour "a = a*1.043"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Il n'y a vraiment pas de quoi avoir honte! Et le cours de swinnen est excellent pour apprendre.
    Merci c'est encourageant

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    a = 100
    for i in range(20):
    a += a*0.043
    print a
    mais en python3.
    je crois que
    print(a) c'est mieux, non?

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par yvkoe Voir le message
    mais en python3.
    je crois que
    print(a) c'est mieux, non?
    Oui! Je travaille encore avec Python 2.7.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Mais, je ne vois pas où est le problème, ce code est très bien, celui de tyrtamos fait l'économie de l'incrémentation de la variable i mais je ne vois pas de problème à part le fait qu'avec un plus grand nombre d'années (mais nous ne sommes pas concernés), a vaudra inf étant trop long pour un float.

  7. #7
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    D’une part, en python, lorsqu’on peut faire avec “for” et “range”, on les préfère à une solution avec “while”, qui sera moins performante et moins pythonesque…

    Quant à a, avec un taux de 4.3%, le temps nécessaire pour multiplier le capital par dix est de 1 / log10(1.043), soit environ 55 ans, alors avant d’atteindre “inf”, un nombre infini d’univers auront eu le temps de succéder au nôtre…

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Citation Envoyé par mont29 Voir le message
    Quant à a, avec un taux de 4.3%, le temps nécessaire pour multiplier le capital par dix est de 1 / log10(1.043), soit environ 55 ans, alors avant d’atteindre “inf”, un nombre infini d’univers auront eu le temps de succéder au nôtre…
    C'est pour ça que j'ai dis que nous n'étions pas concernés , mais un bon exercice pour toi en plus du tuto serait de faire en sorte de limiter le nombre obtenu au centime près afin d'éviter le "inf". Il suffit de passer les valeurs en centimes pour simplifier les choses (ne regarde le corrigé que si tu as fais l'exo ou ne veux pas le faire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a=100 #100€
    annees=20 # à noter que le nombre d'années peut être supérieur à 20
    a*=100 #on passe les valeurs en centimes pour simplifier
    for i in range(annees):
        a += a*0.043
        a=int(a)#on tronque
        print (a,'centimes') #pour la valeur en centimes, je ne mets pas en python 2.x
        print (a/100,"euros") #pour la valeur en €

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Ajouter un noeud, tout simplement
    Par MeTaLCaM dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/06/2007, 11h01
  2. WinForms et Events tout simplement
    Par sayag dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/06/2007, 03h15
  3. [VB6] Lire un mp3 tout simplement
    Par sliverman dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/02/2007, 16h07
  4. Tout simplement connecter un serveur..
    Par ndsaerith dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 03/08/2006, 09h43
  5. tout simplement
    Par @po©alypse dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 20/02/2006, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo