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 retour utilisateur petit jeux


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 18
    Points
    18
    Par défaut problème retour utilisateur petit jeux
    Bonjour,

    J'apprends les bases du langage python et je cherche à créer un mini jeux demandant un nombre entre 0 et 100, l'utilisateur doit le deviner en 5 essais.
    Le code que j'ai écris ici fonctionne, sauf lorsque l'utilisateur finit par trouver le résultat, le message bravo ne s'affiche pas. Pourriez-vous m'aider à comprendre pourquoi?

    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
    import numpy as np
    import numpy.random as npr
     
    a = int(input('Nombre :'))
    b = npr.randint(0, 101)
    c = 0
     
    while a != b:
        if a < b and c != 5:
            print("trop petit")
            c = c + 1
            a = int(input('Nombre :'))
        elif a > b and c != 5:
            c = c + 1
            print('trop grand')
            a = int(input('Nombre :'))
        elif a == b and c != 5:
            print('bravo')
        else:
            print('nulard')
            break
    Merci d'avance, bien cordialment, Elliot

  2. #2
    Membre à l'essai
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Il me semble que le problème vient du fait que ton input est dans une des alternatives de ton bloc "if... elif...else", au lieu d'être tout seul dans ta boucle while.

    Par exemple, si à la 4ème tentative je rentre un chiffre trop petit, ton programme va me demander de rentrer un nouveau nombre (ligne 12) puis sortir de la première alternative de ton bloc "if... elif...else". Comme il est déjà "entré" dans une des alternatives, il ne va pas aller voir tes deux 'elif' et ton 'else'.

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Il faut mettre c!=5 dans la condition du while aussi directement

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Bonjour et merci pour votre réactivité, votre aide m'est précieuse!
    J'ai remanier le programme comme tel :
    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
     
    import numpy as np
    import numpy.random as npr
     
    a = int(input('Nombre :'))
    b = npr.randint(0, 101)
    c = 0
    print(b)
     
    while a != b and c != 4:
        if a < b:
            print('trop pitit')
            c = c + 1
            a = int(input('Nombre :'))
        elif a > b:
            print('trop grand')
            c = c + 1
            a = int(input('Nombre :'))
        else:
            break
     
    if a == b:
        print('gg')
    else:
        print('nop')
    Il semble fonctionner correctement.
    Encore merci, bien cordialement, elliot

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

Discussions similaires

  1. [FreeBSD] Problème d'utilisateur
    Par Gnux dans le forum BSD
    Réponses: 2
    Dernier message: 12/04/2006, 15h54
  2. Problème retour à la ligne dans formulaire
    Par Mysti¢ dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2006, 13h34
  3. [Problème C++] Les petits Vectors
    Par Mouams dans le forum SL & STL
    Réponses: 5
    Dernier message: 24/03/2006, 23h38
  4. Problème retour chariot dans un fichier texte
    Par Redondo dans le forum Windows
    Réponses: 2
    Dernier message: 08/02/2006, 18h23
  5. Nouvelle installation MySql4.0.2d - Problème retour chariot
    Par pit_bulle dans le forum Installation
    Réponses: 2
    Dernier message: 30/09/2004, 16h07

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