Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur avec la fonctionnalité try (assez basique)

Sujet résolu
    19 juillet 2019 à 16:39:37

    Bonjour à tous!

    je travail sur un petit programme et ce dernier ne marche pas. L'erreur vient de la gestion d'erreur mais je n'arrive pas à la trouver... :-(

    Est-ce que quelqu'un de gentil pourrait m'indiquer ce qui ne va pas svp.

    Merci d'avance

    voici le code:

    import os
    bourse=1000	
    nombre_mise = -1
        while nombre_mise < 0 or nombre_mise > 49:
            nombre_mise = input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
            # On convertit le nombre misé
            try:
                nombre_mise = int(nombre_mise)
            except ValueError:
                print("Vous n'avez pas saisi de nombre")
                nombre_mise = -1
                continue
            if nombre_mise < 0:
                print("Ce nombre est négatif")
            if nombre_mise > 49:
                print("Ce nombre est supérieur à 49")
    
        # À présent, on sélectionne la somme à miser sur le nombre
        mise = 0
        while mise <= 0 or mise > bourse:
            mise = input("Tapez le montant de votre mise : ")
            # On convertit la mise
            try:
                mise = int(mise)
            except ValueError:
                print("Vous n'avez pas saisi de nombre")
                mise = -1
                continue
            if mise <= 0:
                print("La mise saisie est négative ou nulle.")
            if mise > argent:
                print("Vous ne pouvez miser autant, vous n'avez que", bourse, "$")
    
    	print("Vous avez misé ",mise,"$ sur le",nombre_mise,". Les jeux sont faits!")
    
    os.system("pause")
    



    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2019 à 16:50:28

      Alors chez moi il fonctionne....après quelques corrections : 

      - tes while : pas d'indentation devant while ligne 4 et 20

      - idem pour le print à la fin, ligne 34

      - ligne 31 tu mets if mise > argent. Alors que ta variable c'est pas argent, mais bourse.

      Après ces petits corrections, chez moi ça marche. En tout cas j'ai pas de problèmes avec la gestion d'erreur, si on tape autre chose qu'un nombre il le signale correctement et boucle.

      • Partager sur Facebook
      • Partager sur Twitter
        19 juillet 2019 à 16:58:54

        Avec le message d'erreur c'est plus facile.

        Mais je vois déjà à la ligne 4 que le while est indenté sans raison.

        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          19 juillet 2019 à 19:00:07

          Merci pour vos réponses, en effet j'avais quelque erreurs (corrigées) dans ce code. Ce dernier faisait partie d'un code plus grand dans lequel je dois faire un jeu de la roulette (je suis la formation OC).

          Le problème est le suivant: lorsque je lance le fichier .py, une fenêtre s'ouvre et se ferme instantanément... Suite à quelque testes, je me suis rendu compte que le pb venait de la partie try. Mais même en reprenant la même chose que dans la correction, ça ne marche pas... Et je n'arrive vraiment pas à trouver l'erreur

          #-*-coding:utf-8 -*
          
          import os
          import math
          import random
          
          bourse = 1000
          continuer_partie = True
          
          
          while continuer_partie:
          	
          	nombre = -1
              while nombre < 0 or nombre > 49:
              nombre= input("Tapez le nombre sur lequel vous voulez miser (entre 0 et 49) : ")
              # On convertit le nombre misé
              try:
                  nombre = int(nombree)
              except ValueError:
                  print("Vous n'avez pas saisi de nombre")
                  nombre = -1
                  continue
              if nombre < 0:
                  print("Ce nombre est négatif")
              if nombre > 49:
                  print("Ce nombre est supérieur à 49")
          
          	# À présent, on sélectionne la somme à miser sur le nombre
          	mise = 0
          	while mise <= 0 or mise > bourse: 
          	    mise = input("Tapez le montant de votre mise : ")
          	    # On convertit la mise
          	    try:
          	        mise = int(mise)
          	    except ValueError:
          	        print("Vous n'avez pas saisi de nombre")
          	        mise = -1
          	        continue
          	    if mise <= 0:
          	        print("La mise saisie est négative ou nulle.")
          	    if mise > bourse:
          	        print("Vous ne pouvez miser autant, vous n'avez que", bourse, "$")
          
          	print("Vous avez misé ",mise,"$ sur le",nombre,". Les jeux sont faits!")
          
          	res = random.randrange(50)
          	
          
          	print("Le numéro obtenue est : ",res)
          
          	if res == nombre:
          		print("Bravo! vous avez gagnez",3 * mise,"$! Sacré somme")
          		bourse += 3 * mise
          	elif nombre % 2 == res % 2:
          		print("Bravo! vous avez gagnez",math.ceil( 0.5 * mise),"$! sacré somme")
          		bourse += math.ceil( 0.5 * mise )
          	else:
          		print("Désolé, vous avez perdu la somme de",mise,"$... Essayons encore!")
          		bourse -= mise
          
          	if bourse <= 0:
          		print("Vous n'avez plus d'argent! GAME OVER")
          		continuer_partie = False	
          	else:
          		print("Votre bourse est actuellement de :",bourse,"$!")
          		quitter = input("Voulez vous quitter la table? (o/n)")
          		if quitter == "o" or quitter == "O":
          			print("Bonne journée!")
          			continuer_partie = False
          		else:
          			print("Très bien, continuons alors!")
          
          os.system("pause")

          -
          Edité par AlexMax1 19 juillet 2019 à 19:04:21

          • Partager sur Facebook
          • Partager sur Twitter
            19 juillet 2019 à 20:21:07

            AlexMax1 a écrit:

            Le problème est le suivant: lorsque je lance le fichier .py, une fenêtre s'ouvre et se ferme instantanément...

            Ça veut dire qu'il y a un message d'erreur, mais tu ne peux pas le voir.

            Il faut exécuter le programme dans une console type cmd ou powershell (sous Windows) et pas double-cliquer dessus. Ou alors utiliser un IDE ou éditeur de texte qui permet d'exécuter le programme dans une console intégrée.

            En plus ça va te permettre de virer cet horrible os.system("pause") qui ne devrait pas exister. Je sais que c'est ce qui est conseillé dans l'un des cours d'OC, mais c'est de la merde.

            Après ça tu va pouvoir lire le message d'erreur et ce sera beaucoup plus facile de debugguer tes programmes.

            -
            Edité par LoupSolitaire 19 juillet 2019 à 20:21:41

            • Partager sur Facebook
            • Partager sur Twitter

            Blond, bouclé, toujours le sourire aux lèvres...

              19 juillet 2019 à 21:25:23

              noté! merci bcp

              le problème était en faite un soucis d'indentation ^^

              C'est en effet plus pratique de travailler comme ça, merci du conseil!

              -
              Edité par AlexMax1 19 juillet 2019 à 21:40:46

              • Partager sur Facebook
              • Partager sur Twitter
                19 juillet 2019 à 21:37:37

                l'Idle de Python, tout simplement, est parfait ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Erreur avec la fonctionnalité try (assez basique)

                × 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