Partage
  • Partager sur Facebook
  • Partager sur Twitter

Environnement python capricieux

Sous Windows 7

Sujet résolu
    6 juillet 2010 à 0:40:05

    Donc, voilà, je me suis remis à Python avec le tutoriel du sdz, pour me remettre un peu en mémoire le langage et pour pouvoir enfin faire un beau code et prendre de bonnes habitudes :-°

    Le problème est le suivant, je suis les instructions du tutoriel, mais avec mon code, l'interpréteur se lance et se ferme directement... Je connais pas trop Windows, mais j'aimerais ne pas devoir aller à chaque fois sur maverick, alors que je décide juste d'essayer un code :p ( Quand à l'interpréteur, c'est embêtant de devoir à chaque fois tout copier.)

    Donc je poste un code qui contient sans doutes des erreurs mais que je ne parviens pas à tester, si vous pouviez me dire où se trouve le problème qui fait que le programme ne semble même pas se lancer.

    #-*- coding: Latin-1 -*-
    from os import system                 #Pour éviter que le programme ne se ferme automatiquement.
    from random import randrange          #Pour le nombre aléatoire qui servira au casino.
    from math import ceil                 #Pour arrondir les nombres à l'unité supérieure.
    
    def pari(mise, case) :
        """Fonction qui calcule le gain ou la parte d'argent."""
        roulette = randrange(50)              #Nombre aléatoire compris entre 0 et 50.
        if case != roulette and case%2 != roulette%2 :
            return -mise
    	elif case%2 == roulette%2 :
    	    return ceil(mise/2)
    	elif case == roulette :
    	    return mise*3
    
    if __name__ = "__main__" :
        argent = 250                     #Argent initial.
        while argent > 0 :               #Tant qu'il reste de l'argent.
    	    print ("Vous avez", argent, "$, entrez votre mise (Entre 1 et 50) ainsi qui la case de la roulette (Entre 1 et 50)")
    	    try :
    		    mise, case = int(raw_input("Somme à parier :")), int(raw_input("Case désirée :"))
    		except ValueError :
    		    print("Vous n'avez pas entrer un nombre...")
    			continue                 #Au cas ou l'user n'entre pas un nombre, on repart de la boucle.
    		if mise < 1 or mise > 50 or case < 1 or case > 50 :
    		    print("La somme où la case indiquée n'est pas comprise entre 1 et 50 ")
    			continue                 #Pour ne pas effectuer la suite si la mise n'est pas valable 
    		argent += pari(mise)         #Le pari en soi.
    		print("Vous avez maintenant : ", argent, "$")
    	print("Vous n'avez plus d'argent, fallait pas aller au ZCasino.")
    	system("pause")
    


    Ah et si il y à une exception levée, windows ne l'affiche pas ? ( Sous le terminal de Linux il y avait moyen de la voir, c'est pour cela que je demande.)

    [Mon code contient sûrement des erreurs, mais comme je peux pas le tester :/ ]

    Edit : Correction de quelques erreurs dûes au copier coller
    • Partager sur Facebook
    • Partager sur Twitter
      6 juillet 2010 à 0:50:12

      1) Voir la FAQ.

      2)
      #-*- coding: Latin-1 -*-
      from os import system                 #Pour éviter que le programme ne se ferme automatiquement.
      from random import randrange          #Pour le nombre aléatoire qui servira au casino.
      from math import ceil                 #Pour arrondir les nombres à l'unité supérieure.
      
      def pari(mise, case) :
      	"""Fonction qui calcule le gain ou la parte d'argent."""
      	roulette = randrange(50)              #Nombre aléatoire compris entre 0 et 50.
      	if case != roulette and case%2 != roulette%2 :
      		return -mise
      	elif case%2 == roulette%2 :
      		return ceil(mise/2)
      	elif case == roulette: 
      		return mise*3
      
      if __name__ == "__main__" :#==
      	argent = 250                     
      	while argent > 0 :               
      		print ("Vous avez", argent, "$, entrez votre mise (Entre 1 et 50) ainsi qui la case de la roulette (Entre 1 et 50)")
      		try :
      			mise, case = int(raw_input("Somme à parier :")), int(raw_input("Case désirée :"))
      		except ValueError :
      			print("Vous n'avez pas entrer un nombre...")
      			continue                
      		if mise < 1 or mise > 50 or case < 1 or case > 50 :
      			print("La somme où la case indiquée n'est pas comprise entre 1 et 50 ")
      			continue                 
      		argent += pari(mise,case) #mise & case.
      		print("Vous avez maintenant : ", argent, "$")
      	print("Vous n'avez plus d'argent, fallait pas aller au ZCasino.")
      	system("pause")
      

      Des problèmes dans l'indentation également.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        6 juillet 2010 à 1:19:19

        Bonjour,

        La FAQ ?! Mais où qu'elle est passée celle-la !!?? :-°



        Sous Windows, la console se referme immédiatement après qu'elle est terminée l'execution d'un programme (que tout ce soit bien passé ou non).

        Il est donc dangeureux d'utiliser la fonction os.system('pause') pour faire une pause à la fin du script puisqu'en Python quand une exception (non-gérée) est déclanchée le programme s'arrète sans executer la suite du script.

        Il est préférable de passer par un script Batch pour tester tes programmes Python. (Ou d'utiliser IDLE.)

        set Path=%Path%;C:\PythonXX
        python ton_script.py
        pause



        Bonne continuation. ;)
        • Partager sur Facebook
        • Partager sur Twitter
          6 juillet 2010 à 1:27:11

          Citation : LeYan'tibus



          La FAQ ?! Mais où qu'elle est passée celle-la !!?? :-°




          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            6 juillet 2010 à 1:42:25

            Elle tient pas en place celle-là, c'est pas serieux tout ça :p !


            La verité, c'est que quand je me suis rendu compte qu'EMC1 m'avait grillé, j'étais trop triste de devoir supprimer ma réponse... >_<
            • Partager sur Facebook
            • Partager sur Twitter
              6 juillet 2010 à 12:43:58

              Merci de l'aide, je connaissait pas l'existence de la F:A.Q Python :).

              Résolu.

              Les erreurs d'indentation, c'était dû à une mauvaise config der mon éditeur, par contre, raw_input n'est aooarenebt plus valable en 3.1.2 ^^
              • Partager sur Facebook
              • Partager sur Twitter

              Environnement python capricieux

              × 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