Besoin d'aide programmation de base

Résolu
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012 - 7 août 2011 à 19:34
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012 - 10 août 2011 à 09:07
a/s Python boucle while
ref: cours de M.Swinnen

Bonjour

= voici le code ===
t1=['1','2','3','4','5','6','7','8','9','10']
t2=['2','3','4','5','6','7','8,','9','10','11']


combi=[]

i=0
j=0

while (j<len(t2)):

while (i<len(t1)):
combi.append(t1[i]+" - "+t2[j])
i=i+1
j=j+1

print("combi =",combi)
print(len(combi))
= voici le résultat:
combi ['1 - 2', '2 - 2', '3 - 2', '4 - 2', '5 - 2', '6 - 2', '7 - 2', '8 - 2', '9 - 2', '10 - 2']

autrement dit "j" ne s'incrémente pas et je n'arrive pas à m'en sortir...
Merci par avance
PS c'est les 11 étoiles de l'euromillions groupées 2 par 2 qui devraient faire 55 combinaisons ...

8 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
9 août 2011 à 10:02
Il faut ré-initialiser i. Essaie ceci:
while (j<len(t2)): 
  i=0
  while (i<len(t1)): 
    combi.append(t1[i]+" - "+t2[j]) 
    i=i+1 
  j=j+1 
print("combi =",combi) 
print(len(combi))



@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012
7 août 2011 à 19:35
PPS désolé mais je me rends compte que les indentations des while ont sauté
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
8 août 2011 à 15:36
Bonjour,
Effectivement, l'indentation aurait été pratique...mais je pencherais pour dire que ton incrémentation doit être sortie de la boucle intérieure pour la mettre dans celle extérieur.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012
8 août 2011 à 20:51
Bonsoir,

Merci par avance pour ton aide !

Tout à fait par hasard et en "trichant" avec ma progression dans l'étude du cours de M.Swinnen j'ai utilisé 2 boucles "for i/j in range(10)" qui me font arriver où je souhaitais arriver avec ces "while". Evidemment j'obtiens 100 combinaisons et non pas les 55 requises - à cause des répétitions. Mais j'espère avec le temps trouver un moyen de les éliminer.
Le problème des while demeure donc entier ... merci si tu peux précisément trouver où ça cloche !
@+
dg
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
9 août 2011 à 09:07
Je ne connais pas la syntaxe de python mais, en C, on ferait comme ceci:
while (j<len(t2)
{
  while (i<len(t1))
  {
    ...
    i=i+1;
  }
  ...
  j=j+1;
}



@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
9 août 2011 à 09:10
J'ai regardé vite fait un tuto. La syntaxe serait la suivante:

while (j<len(t2)): 
  while (i<len(t1)): 
    combi.append(t1[i]+" - "+t2[j]) 
    i=i+1 
  j=j+1 
print("combi =",combi) 
print(len(combi))



@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012
9 août 2011 à 09:54
Bonjour,

ref:Ton dernier message

C'est ce que j'obtiens aussi soit 10 combinaisons, plus exactement tous les éléments de t1 combinés au premier de t2 càd. 'K'

Merci beaucoup tout de même.

Cordialement

dg1742
0
dg1742 Messages postés 7 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 25 septembre 2012
10 août 2011 à 09:07
Bonjour,

Fantastique !
C'est parfait ...
Merci beaucoup.
A surligner au fluo: REINITIALISER "i".

La vie continue

Bonne journée

dg
0
Rejoignez-nous