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 de boucle


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de garlinux
    Homme Profil pro
    nullos en Python
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : nullos en Python

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut Problème de boucle
    Bonsoir,
    Je me suis mis récemment à Python afin de créer de petits jeux pour ma fille qui est en CE1 (et aussi pour stimuler ma cervelle ^^).
    Je suis donc en train d'écrire un petit programme qui demande le résultat de la somme de deux chiffres ; mon problème est que le résultat affiché est toujours faux...
    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
    import random
    print ("**********************************************")
    print ("*                                            *")
    print ("*  Bienvenue dans le jeu des additions !!!   *")
    print ("*                                            *")
    print ("**********************************************")
    print (" ")
     
    prenomdujoueur = input ("Entre ton prénom : ")
    nombremaximal = int(input("Choisi le nombre maximal de l'addition : "))
    nombre1 = random.randint(1,nombremaximal)
    nombre2 = random.randint(1,nombremaximal)
    somme = nombre1 + nombre2
    print ("")
    print ("Combien font", nombre1, "+", nombre2, "?")
    saisiejoueur = input("?")
    while saisiejoueur != somme :
        if saisiejoueur != somme :
            print ("Erreur !!! Essaie encore !!!")
        else :
            print ("Félicitations !!!Tu sais bien compter", prenomdujoueur, "!!!")
    Avez-vous une petite idée pour que je fasse la boucle convenablement ?

    Je précise que je débute le Python aujourd'hui , en m'aidant uniquement du livre "Python pour les kids"
    Merci pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    l'erreur est simple, input renvoie une chaine de caractère
    Vous pouvez soit convertir la réponse donnée en entier, soit convertir la réponse attendu en chaine de caractère

  3. #3
    Membre confirmé
    Homme Profil pro
    autodidacte
    Inscrit en
    Décembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Décembre 2018
    Messages : 100
    Par défaut
    Exact, et ton input met le dans ta boucle, pour pouvoir le changer quand c'est faux

  4. #4
    Membre averti Avatar de garlinux
    Homme Profil pro
    nullos en Python
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : nullos en Python

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut
    j'ai laissé tomber la boucle ,

    voici le code édité :

    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
    import random
    print ("**********************************************")
    print ("*                                            *")
    print ("*  Bienvenue dans le jeu des additions !!!   *")
    print ("*                                            *")
    print ("**********************************************")
    print (" ")
     
    prenomdujoueur = input ("Entre ton prénom : ")
    nombremaximal = int(input("Choisi le nombre maximal de l'addition : "))
    nombre1 = random.randint(1,nombremaximal)
    nombre2 = random.randint(1,nombremaximal)
    somme = int(nombre1 + nombre2)
    print ("")
    print ("Combien font", nombre1, "+", nombre2, "?")
    saisiejoueur = int(input("?"))
    if saisiejoueur != somme :
        print ("Erreur !!! Essaie encore !!!")
    else :
        print ("Félicitations !!!Tu sais bien compter", prenomdujoueur, "!!!")
    Pouvez-vous me dire comment placer la boucle ? merci.

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Par exemple, comme ceci :
    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 random
    print ("**********************************************")
    print ("*                                            *")
    print ("*  Bienvenue dans le jeu des additions !!!   *")
    print ("*                                            *")
    print ("**********************************************")
    print (" ")
     
    prenomdujoueur = input ("Entre ton prénom : ")
    nombremaximal = int(input("Choisi le nombre maximal de l'addition : "))
    nombre1 = random.randint(1,nombremaximal)
    nombre2 = random.randint(1,nombremaximal)
    somme = int(nombre1 + nombre2)
    print ("")
    print ("Combien font", nombre1, "+", nombre2, "?")
    saisiejoueur = ""
    cpt = 0
    while saisiejoueur != somme:
        cpt = cpt + 1
        saisiejoueur = int(input("? "))
        if saisiejoueur != somme :
            print ("Erreur !!! Essaie encore !!!")
        else :
            print ("""Félicitations !!!Tu sais bien compter, %s, \n
                   tu as résussi en %i coup(s) !!!""" %(prenomdujoueur,cpt))
    Avec quelques améliorations cosmétiques

  6. #6
    Membre averti Avatar de garlinux
    Homme Profil pro
    nullos en Python
    Inscrit en
    Février 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : nullos en Python

    Informations forums :
    Inscription : Février 2018
    Messages : 19
    Par défaut
    Merci pour ces améliorations !!!
    Je vais étudier ton code de plus près pour comprendre comment ça fonctionne

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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