Problème sur une boucle

Problème sur une boucle - Python - Programmation

Marsh Posté le 28-04-2013 à 22:00:48    

Bonsoir à tous,
J'ai un soucis sur mon programme, je n'arrive pas à lui faire rattraper la boucle initiale après une opération annexe. En fait, il doit tirer un numéro, et vérifier si celui ci n'a pas été tiré au préalable. J'ai fait en sorte qu'il cherche un autre numéro si celui tiré est déjà sorti. Le problème c'est que je n'arrive pas à rejoindre ma boucle principale une fois un numéro valable tiré.  

Code :
  1. i = random.randint(0,14)    #On prend une valeur aléatoire de i   
  2.     if (i) in Valeurs:
  3.         i = random.randint(0,14)
  4.         while (i) in Valeurs:
  5.             i = random.randint(0,14)
  6.     else:


Je cherche en fait à rejoindre mon else une fois qu'un i inédit est tiré. Une idée ?

Reply

Marsh Posté le 28-04-2013 à 22:00:48   

Reply

Marsh Posté le 28-04-2013 à 22:55:16    

Simplement, au lieu de vérifier s'i lest dans les valeurs, puis de faire une boucle, tu pourrais directement faire :
 

Code :
  1. i = random.randint(0,14)    #On prend une valeur aléatoire de i 
  2.     while (i) in Valeurs:
  3.         i = random.randint(0,14)


 
Je n'y connais rien au python, mais ca m'a l'air plutot logique.

Reply

Marsh Posté le 29-04-2013 à 11:25:46    

Si ta quantité de valeurs est aussi limitée, tu pourrais prendre ton problème de la manière inverse :
 

Code :
  1. import random
  2. valeurs = [ i for i in xrange( 14 ) ]
  3. # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
  4. random.shuffle( valeurs )
  5. while( len( valeurs ) > 0 ):
  6.   valeur = valeurs.pop()
  7.   # faire un traitement avec la valeur



---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed