Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] Execution du if, mais pas du else dans ma boucle !

Sujet résolu
    1 juillet 2006 à 11:45:09

    Bonjour,
    J'apprends en ce moment le Python.
    En guise d'exercice, j'ai essayé de suivre le TP "Plus ou Moins" en C++, et de l'adapter en Python.

    Voici mon code source:

    # -*- coding: cp1252 -*-
    #Author: NeoChaotic
    #Name: "Plus ou Moins"
    #Version: 0.0.2

    from random import randrange #import de la fonction randrange

    nombreAleatoire = randrange(0,100,1) #nombre aléatoire entre 0 et 100
    compteur = 0
    int(nombreAleatoire)

    while (nombreChoisi != nombreAleatoire):
        nombreChoisi = raw_input('Combien ?\n') #demande d'entrée d'un nombre
        int(nombreChoisi)
        compteur = compteur +1 #incrémentation du compteur
       
        if (nombreChoisi < nombreAleatoire):
            print 'C\'est plus !C\'est votre', compteur, 'ème coup\n\n'
        elif (nombreChoisi > nombreAleatoire):
            print 'C\'est moins !C\'est votre', compteur, 'ème coup\n\n'
        else:
            print 'Bravo !'
    input()


    Le problème: Quel que soit le nombre que j'entre, le code renvoie toujours "C'est moins !"
    Aparemment, vu que le compteur s'incremente à chaque fois, la boucle se déroule correctement.
    Une explication ?

    Merci :)

    edit
    Exusez du titre carrément pas explicite... :-°
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      1 juillet 2006 à 11:52:12

      (Où on se rend compte que Python n'est pas parfait : )

      Il faut que tu fasses attention aux types des variables (nombres entiers ? chaînes de caractères ?), car c'est de là que vient le problème. En effet, tu compares nombreAleatoire, qui est un entier, avec nombreChoisi - qui lui est une chaîne, car tu lis ce que l'utilisateur entre avec raw_input

      Or raw_input renvoie une chaîne lue au clavier, et jamais un nombre. Utilises input à la place :)
      • Partager sur Facebook
      • Partager sur Twitter
        1 juillet 2006 à 12:09:08

        Oups, oui, attends j'édite mon code:

        int(nombreAleatoire)
        int(nombreChoisi)

        edit: en effet, il faut juste "input()"

        Merci !
        • Partager sur Facebook
        • Partager sur Twitter
          1 juillet 2006 à 14:05:18

          Salut,

          input renvoie ce que te donne l'utilisateur ne l'oublie pas.
          S'il a envie de renvoyer "@#[^@|" c'est sont droit le plus strict ...
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme

          [Python] Execution du if, mais pas du else dans ma boucle !

          × 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