Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème TP

Sujet résolu
    1 juillet 2010 à 23:52:20

    Bonsoir, j'ai commencé le TP du tuto pour reprendre la main en python, et je ne comprends pas l'erreur que l'interpréteur m'affiche.
    Voici le code :
    from random import randrange
    from math import ceil
    
    cont = 1
    banque = 50
    n_gagnant = randrange(50)
    n_choisi = 50
    
    while cont :
      while (n_choisi < 0) or (n_choisi > 49) :
        n_choisi = input("Choisissez un nombre entre 0 et 49 banque = %d € " %banque)
        try :
          int(n_choisi)
        except TypeError :
          print("Rentrez un nombre et pas autre chose")
          n_choisi = 50
          continue
    
      mise = input("Choisissez votre mise banque = %d € " %banque)
    
      while (mise > banque) or (mise < 0) :
        try :
          int(mise)
        except TypeError :
          print("Rentrez un nombre et pas autre chose")
    
        if mise < 0 : print("Entrez une somme positive")
        elif mise > banque : print("Seuil dépassé")
    
      print("Rien ne va plus, la roue tourne et tombe sur", n_gagnant)
    
      if n_gagnant == n_choisi :
        banque += mise * 3
      
      elif (n_gagnant % 2) == (n_choisi % 2) :
        banque -= ceil(mise/2)
      
      else :
        banque -= mise
    
      go_on = input("On recommence ? o/n")
    
      if go_on == 'o' : cont = 1
      else :
        print("Vous repartez avec %d €" %banque)
        cont = 0
    

    L'erreur se situerait à la ligne 10 :
    >>> 
    Choisissez un nombre entre 0 et 49 banque = 50 € 33
    Traceback (most recent call last):
      File "C:\Users\GDM\Desktop\Python\tp_python.py", line 10, in <module>
        while (n_choisi < 0) or (n_choisi > 49) :
    TypeError: unorderable types: str() < int()
    >>>
    

    Je compare pas 2 types différents puisque je rentre avec n_choisi = 50. Où est le problème ?

    Merci d'avance,
    • Partager sur Facebook
    • Partager sur Twitter
      1 juillet 2010 à 23:59:35

      try:
      n_choisi=int(n_choisi)
      • Partager sur Facebook
      • Partager sur Twitter
        2 juillet 2010 à 1:34:54

        Oui je suis con là...
        Bon voici le programme fini, j'ai corrigé quelques bugs qui suivaient :
        from random import randrange
        from math import ceil
        
        cont = 1
        banque = 50
        n_gagnant = randrange(50)
        n_choisi = -1
        
        while cont :
          n_choisi = -1
          while (n_choisi < 0) or (n_choisi > 49) :
            n_choisi = input("Choisissez un nombre entre 0 et 49 (banque = %d €) " %banque)
            try :
              n_choisi = float(n_choisi)
            except ValueError :
              print("\nRentrez un nombre et pas autre chose")
              n_choisi = -1
              continue
        
          mise = 0
        
          while (mise > banque) or (mise <= 0) :
            mise = input("\nChoisissez votre mise (banque = %d €) " %banque)
            try :
              mise = int(mise)
            except ValueError :
              print("\nRentrez un nombre et pas autre chose")
              mise = 0
              continue
            
            if mise < 0 : print("\nEntrez une somme positive")
            elif mise > banque : print("\nSeuil dépassé")
        
          print("\nAttention rien ne va plus ! ... la roue tourne et tombe sur", n_gagnant)
        
          if n_gagnant == n_choisi :
            banque += mise * 3
            print("\nBravo, vous avez vu juste ! mise multipliée par 3 ! (banque = %d €)" %banque)
          
          elif (n_gagnant % 2) == (n_choisi % 2) :
            banque -=(mise/2)
            print("\nVous avez trouvé la bonne couleur ! Vous regagnez la moitié de votre mise"
                  "\n(vous perdez donc la moitié de votre mise) (banque = %.d €)" %banque)
          
          else :
            banque -= mise
            print("\nVous ne gagnez rien et perdez votre mise(banque = %d €)" %banque)
        
          go_on = input("\nOn recommence ? o/n ")
        
          if go_on == 'n' :
            cont = 0
            print("Vous repartez avec %d €" %banque)
        


        Question : Est ce que vous trouvez lisible cette indentation à deux espaces ?
        • Partager sur Facebook
        • Partager sur Twitter

        Problème TP

        × 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