Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de boucles

Anonyme
    3 octobre 2012 à 15:06:30

    Bonjour,

    Je dois rendre un projet mais j'ai un petit soucis...

    Le programme doit boucler une instruction (combien de bières le client vient d'acheter ?) via la fonction input. Celle-ci ne doit s'arrêter que lorsque l'utilisateur écrit comme valeur : -1 (valeur sentinelle).

    Voici ce que j'ai trouvé :
    while nbreBieres!=-1:
    	nbreBieres=int(input("Combien de bières le client vient d'acheter ? "))
    

    J'ai aussi trouvé une autre méthode qui marchait avec un if et un break dans la boucle mais ça ne résout pas mon problème à savoir, je dois faire la somme des bières achetés. Mais vu qu'il s'agit d'une boucle, ma variable nbreBieres est à chaque fois remplacée/écrasée par la nouvelle valeur. Et donc, il est impossible de faire la somme des bières avec cette variable (qui se renouvelle sans cesse).

    Pourriez-vous me donner un indice ?

    Merci d'avance,
    • Partager sur Facebook
    • Partager sur Twitter
      3 octobre 2012 à 15:22:16



      nbreBieres = 0
      while True:
      	nb = int(input("Combien de bières le client vient d'acheter ? "))
      	if nb == -1: break
      	nbreBieres += nb
      

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

      Anonyme
        3 octobre 2012 à 17:45:25

        Merci, mais la variable contient toujours la dernière valeur qu'on lui donne. Et donc, il est toujours impossible de lui faire faire la somme de l'ensemble des valeurs qu'on a attribué à la variable nbreBieres (vu que les précédentes valeurs ont été écrasées).

        Exemple avec ton code :

        Combien de bières : 6
        Combien de bières : 2
        Combien de bières : -1

        print(nb) -> -1
        print(nbreBieres) -> 2

        Impossible d'obtenir 8 (6+2)...

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          3 octobre 2012 à 17:51:03

          Salut,

          Tu n'aurais pas fait une petite erreur de print des fois ?

          Le code de josmiley, c'est la même chose que ça :

          somme = nbreBieres = 0
          while nbreBieres!=-1:
                  somme += nbreBieres
          	nbreBieres=int(input("Combien de bières le client vient d'acheter ? "))
          print (somme)
          
          • Partager sur Facebook
          • Partager sur Twitter
            3 octobre 2012 à 17:57:09

            ligne 5, ne pas oublier le +
            nbreBieres += nb
            • Partager sur Facebook
            • Partager sur Twitter

            Python c'est bon, mangez-en. 

            Problème de boucles

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown