Partage
  • Partager sur Facebook
  • Partager sur Twitter

les lettres ferme le programme

Sujet résolu
    8 juillet 2010 à 12:25:29

    Bonjour,
    Voila j'aimerai bien une astuce pour que les lettes ne ferme pas mon programme. Voici mon code
    # -*-coding:Latin-1 -*
    import os
    from random import randrange
    
    print("Bienvenue dans ma version du jeu plus ou moin en Python.")
    continuer = True
    while continuer == True:
    	print("Tapez 1 pour facile => 100, 2 pour moyen =>10000 et 3 pour difficile =>1000000. Mais si vous voulez que se soi une autre personne qui rentre le chiffre tapez 4")
    	condition = 9
    	
    	while condition != 8:
    		niveau = input()
    		
    		if niveau == 1:
    			print("Vous allez jouez en mode facile.")
    			nb_mystere = randrange(100)
    			condition = 8
    			
    		elif niveau == 2:
    			print("Vous allez jouez en mode moyen.")
    			nb_mystere = randrange(10000)
    			condition = 8
    			
    		elif niveau == 3:
    			print("Vous allez jouer en mode difficile.")
    			nb_mystere = randrange(1000000)
    			condition = 8
    			
    		elif niveau == 4:
    			print("Tapez le nombre a entrer")
    			nb_mystere = input()
    			condition = 8
    			
    		else:
    			print("vous n'avez pas choisi le niveau de difficulter tapez 1, 2, 3 ou 4!")
    			condition = 9
    	
    	
    	print("Veuillez tapez un nombre pour que je puisse vous dire si c'est plus ou moin.")
    	nb_saisi = input()
    	compteur = 0
    	
    	while nb_mystere != nb_saisi:
    		if nb_saisi < nb_mystere:
    			print("C'est plus !! Tapez un nombre.")
    			nb_saisi = input()
    			compteur = compteur + 1
    		
    		elif nb_saisi > nb_mystere:
    			print("C'est moin !! Tapez un nombre.")
    			nb_saisi = input()
    			compteur = compteur + 1
    	
    	compteur = compteur + 1
    	print("Bravo vous avez gagner ! Vous avez eu besion de ",compteur,"coups")
    	print("Voulez vous rejouer ? Tapez 1 pour oui et une lettre pour quitter.")
    	quiterl = input()
    	
    	if quiterl == 1:
    		continuer = True
    		
    os.system("pause")
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2010 à 12:58:32

      Lors d'une saisie de chiffres, il faut sans doute utiliser les exceptions avec les blocs try, except, else, et autres..
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2010 à 16:28:34

        Citation : realmagma

        Lors d'une saisie de chiffres, il faut sans doute utiliser les exceptions avec les blocs try, except, else, et autres..



        Ou si tu n'en es pas encore là tu peux utiliser une conditions que tu peux inclure dans ta boucle.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          8 juillet 2010 à 16:51:54

          Dans ton code tu utilise input() pour récupérer un nombre, hors input() renvoie une chaine de caractère.
          • Partager sur Facebook
          • Partager sur Twitter
            8 juillet 2010 à 19:54:19

            Le plus propres serait de faire avec des exceptions, par exemple :
            while entree == "":
                entree = input()
                try:
                    a = int(entree)
                except ValueError:
                    print "Rentre un nombre"
                    entree = ""
            


            Si tu n'en es pas là, la méthode isdigit d'une chaîne permet de vérifier qu'il s'agisse bien d'un nombre.

            Et au passage, while continuer == True s'écrit plus simplement (et proprement) while continuer .
            • Partager sur Facebook
            • Partager sur Twitter

            les lettres ferme le programme

            × 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