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 :

problème boucle while qui est en continu


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de publiphobe
    Homme Profil pro
    entrepreneur
    Inscrit en
    Septembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : entrepreneur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2020
    Messages : 25
    Par défaut problème boucle while qui est en continu
    Bonjour à tous,

    je débute en python, et je bute sur un exercice plutôt simple.

    Le but de l'exercice est de demander à l'utilisateur de multiplier deux chiffres, de 1 à 10, choisis au hasard par l'ordinateur. Ensuite il faut dire si le résultat est bon, ou non, et ajouter/enlever selon si la réponse est exacte ou non. Et cela doit se faire trois fois. Mon code fonctionne très bien, mais il continue au delà des trois fois.

    J'ajoute que je l'ai fait une première fois avec la boucle "for", ça a fonctionné, mais là je n'y arrive pas avec la boucle while (comme je l'ai dit, il ne s'arrête pas à la troisième fois).

    Voici mon code:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import random
     
    points = 0
    i=0
     
    # je créé une boucle qui est censé se répéter trois fois
     
    while i < 3:
     
        #je donne 2 chiffres choisis au hasard entre 1 et 10
     
        a=random.randint(1,10)
        b=random.randint(1,10)
     
        # j'affiche le calcul a effectuer
     
        print(a,"x",b)
     
        #je demande à l'utilisateur de donner le résultat du produit des deux nombres
     
        reponse=int(input("Quel est le produit de ces deux nombres ? "))
     
        # si la réponse est donne, on dit "bravo" et on lui rajoute 1 point
     
        if reponse==a*b:
            print("Bravo !")
            points +=1
            print("Votre score est de ",points)
     
        # si la réponse est fausse on lui dit "faux" et on lui enlève un point. Puis on affiche score et le bon résultat
     
        else:
            print("Faux ! la bonne réponse était:",a*b)
            points -=1
            print("Votre score est de ",points)
     
        # j'incrémente i de 1 à chaque boucle
     
        i += 1
            break
    Merci à tous pour votre aide

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Il sert à quoi ce break final ???

    Accessoirement, pour Python, les indentations sont super importantes car il s'en sert pour se repérer. Là ça va encore par chance car le break est décalé vers la droite mais en situation inverse le code aurait planté. Et dans d'autres situations il pourrait partir en live dans l'exécution. Donc les lignes d'un même bloc tu les alignes de la même façon.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti Avatar de publiphobe
    Homme Profil pro
    entrepreneur
    Inscrit en
    Septembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : entrepreneur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2020
    Messages : 25
    Par défaut
    Merci pour ta réponse.

    En fait, au départ, je ne l'avais pas mis, puis je l'ai rajouté j'espérais que ça quitte la boucle à la troisième fois.
    Mais du coup, ça ne fonctionnait toujours pas avant que je le rajoute. Tu as une idée du problème ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par publiphobe Voir le message
    Mais du coup, ça ne fonctionnait toujours pas avant que je le rajoute. Tu as une idée du problème ?
    Excepté le break à la fin votre boucle devrait se terminer.
    Si ce n'est pas le cas (chez vous), ajoutez un print(i) juste après le while pour afficher la valeur de i.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti Avatar de publiphobe
    Homme Profil pro
    entrepreneur
    Inscrit en
    Septembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : entrepreneur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2020
    Messages : 25
    Par défaut
    Citation Envoyé par wiztricks Voir le message

    Si ce n'est pas le cas (chez vous), ajoutez un print(i) juste après le while pour afficher la valeur de i.
    je viens d'essayer, avec la bonne indentation, il n'affiche rien du tout, comme si je n'avais pas rajouté de bout de code.
    J'y comprends plus rien.

  6. #6
    Membre averti Avatar de publiphobe
    Homme Profil pro
    entrepreneur
    Inscrit en
    Septembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : entrepreneur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2020
    Messages : 25
    Par défaut
    J'ai très honte. En fait je découvre Pycharm depuis peu, et je n'avais pas vu qu'il lancait non pas le script de la fenêtre active, mais un autre script qui avait le même code avec une boucle infinie.

    Désolé encore.

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par publiphobe Voir le message
    J'y comprends plus rien.
    Tout ce que je peux dire, c'est que le premier code que vous avez posté fonctionne correctement chez moi.
    Et si on ne supprime pas la dernière ligne (le break mal indenté), çà doit se vautrer avec un message d'erreur avant d'afficher quoi que ce soit.

    Après la question est peut être liée à la façon de lancer le programme.
    Si vous le lancez depuis un environnement de développement "bizarre", vous pouvez voir des problèmes qu'on ne sait par reproduire lorsqu'on exécute le code de façon standard (un script lancé depuis un "terminal" via python monscript.py).

    Et si on ne sait pas reproduire, on ne peut pas savoir ce qu'il se passe sur votre ordinateur...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. boucle while qui ne s'arrete pas à la lecture d'un zero
    Par malikoo dans le forum Général Python
    Réponses: 14
    Dernier message: 04/07/2007, 10h48
  2. Boucle While qui ne se termine jamais.
    Par ChiPi' dans le forum SGBD
    Réponses: 4
    Dernier message: 08/06/2007, 19h48
  3. [MySQL] Problème boucle WHILE
    Par Adlack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2007, 19h30
  4. [Tableaux] boucle while qui ne boucle pas comme je veux
    Par oceane751 dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 00h42
  5. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11

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