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 :

10 petites lignes d'un petit débutant


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut 10 petites lignes d'un petit débutant
    Bonjour,
    Il s'agit de comparer un tarif sans abonnement à un tarif avec abonnement, pour déterminer à partir de quel moment un abonnement devient plus avantageux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #! /usr/bin/env python
    # -*- coding:Utf8 -*-
     
    psa = 0         # Prix sans abonnement
    paa = 0         # Prix avec abonnement
    abon = 280      # montant abonnement
     
    for i in range(12+1) :
            psa += 120
            paa += 90
            print(i,"sans abon.:", psa,"-","avec abon.:",paa + abon)   
    print("")
    if paa < psa :
            print("Rentable à partir de : ", paa,"€ et",i,"abonnements.")
    J'aurais aimé pouvoir afficher une ligne de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    9 sans abon.: 1200 - avec abon.: 1180
    mais je n'y arrive pas.
    En vous remerciant pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 308
    Par défaut
    Salut,

    C'est ceci que tu veux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for i in range(12+1) :
        psa += 120
        paa += 90
        print(i,"sans abon.:", psa,"-","avec abon.:",paa + abon)   
     
        if paa < psa :
            print("Rentable à partir de : ", paa,"€ et",i,"abonnements.")
            break
    non ?

  3. #3
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 925
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    Citation Envoyé par vincent.steiner Voir le message
    J'aurais aimé pouvoir afficher une ligne de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    9 sans abon.: 1200 - avec abon.: 1180
    mais je n'y arrive pas.
    En vous remerciant pour votre aide
    C'est déjà le cas, non?
    Je pense que tu voulais faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    psa = 0         # Prix sans abonnement
    paa = 0         # Prix avec abonnement
    abon = 280      # montant abonnement
     
    for i in range(1, 12) :
            psa += 120
            paa += 90
            print(i,"sans abon.:", psa,"-","avec abon.:",paa + abon)   
            if (paa+abon) < psa :
                    print("Rentable à partir de : ", paa,"€ et",i,"abonnements.")
                    break
    Attention avec l'indentation, python les interprètes. Ici la condition if est exécutée dans la boucle. Sur ton code le if est exécuté à la suite de la boucle (une fois la boucle finie)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Bonjour,


    C'est déjà le cas, non?
    Je pense que tu voulais faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    psa = 0         # Prix sans abonnement
    paa = 0         # Prix avec abonnement
    abon = 280      # montant abonnement
     
    for i in range(1, 12) :
            psa += 120
            paa += 90
            print(i,"sans abon.:", psa,"-","avec abon.:",paa + abon)   
            if (paa+abon) < psa :
                    print("Rentable à partir de : ", paa,"€ et",i,"abonnements.")
                    break
    Attention avec l'indentation, python les interprètes. Ici la condition if est exécutée dans la boucle. Sur ton code le if est exécuté à la suite de la boucle (une fois la boucle finie)
    Hominidé m'a donné la réponse que je cherchais. C'était donc une question d'indentation. L'instruction "break" arrête la boucle, le résultat trouvé. C'est bien ça?
    Merci à tous en tout cas.

  5. #5
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 925
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par vincent.steiner Voir le message
    L'instruction "break" arrête la boucle, le résultat trouvé. C'est bien ça?
    Merci à tous en tout cas.
    Tout à fait

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    bonjour

    Je trouve dommage de mettre des constantes dans la bouche (12, 120 et 90)...
    Autre version en 10 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    maxi = 48
    abonnement = 280
    psa = 120         # Prix sans abonnement
    paa = 90         # Prix avec abonnement
    print(f"   {'Sens':>8}{'Avec':>8}")
    for i, sans, avec in ((x, x*psa,(x*paa)+abonnement) for x in range(1, maxi)):
        print(f"{i:>3}{sans:>8}{avec:>8}")
        if avec < sans:
            print(f"Abonnement valable à partir de {i} achats, pour un montant de {avec-abonnement} € (sans l'abonnement)")
            break;
    Ici, l'affiche de sortie est formaté en tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
           Sans    Avec
      1     120     370
      2     240     460
      3     360     550
      4     480     640
      5     600     730
      6     720     820
      7     840     910
      8     960    1000
      9    1080    1090
     10    1200    1180
    Abonnement valable à partir de 10 achats, pour un montant de 900(sans l'abonnement)
    Note: je trouve 10 et non 9

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    C'est effectivement beaucoup mieux. Je vais l'étudier en espérant qu'avec un peu de temps j'arriverai à faire d'aussi jolies choses. Merci, merci.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vu de loin c'est pas juste une équation à une inconnue ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    120*i = 90*i+280
    120*i - 90*i = 280
    30*i = 280
    i = 280/309
    Si mes souvenirs sont bons...

  9. #9
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 925
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Bonjour,

    Vu de loin c'est pas juste une équation à une inconnue ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    120*i = 90*i+280
    120*i - 90*i = 280
    30*i = 280
    i = 280/309
    Si mes souvenirs sont bons...
    Quelle bonne mémoire! . (du moins pour calculer le moment où les termes sont égaux)

Discussions similaires

  1. petite question d'un curieux, débutant en C ...
    Par TutuXoZaure dans le forum C
    Réponses: 10
    Dernier message: 14/12/2005, 01h46
  2. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31
  3. [Débutant] soucis avec un petit prog
    Par Ludo75 dans le forum C++
    Réponses: 5
    Dernier message: 12/09/2005, 20h41
  4. [Débutant] petit problème de "protected"
    Par dj_lil dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2005, 10h54
  5. [Débutant] Petit probleme try catch
    Par Terminator dans le forum Langage
    Réponses: 16
    Dernier message: 30/06/2005, 13h21

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