Bonjour, je vous ecrit car je suis débutant en langage python et plus généralement en programmation.
J'apprends ce langage a l'aide du livre de Gerard Swinnen : Apprendre a programmer avec python.
Et je bute sur l'exercice suivant qui me parait pourtant accessible :
Pour essaye de le résoudre voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Soient les listes suivantes : t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] t2 = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] Écrivez un petit programme qui crée une nouvelle liste t3. Celle-ci devra contenir tous les éléments des deux listes en les alternant, de telle manière que chaque nom de mois soit suivi du nombre de jours correspondant : ['Janvier',31,'Février',28,'Mars',31, etc...].
Cependant j'ai une erreur qui est celle ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 # -*- coding:Utf-8 -*- t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] t2 = ['Janvier','Février','Mars','Avril','Mai','Juin',"Juillet",'Août','Septembre','Octobre','Novembre','Décembre'] t3=[] a=0 b=len(t1) while a<=b: t3.append(t2[a]) t3.append(t1[a]) print t3[a], a+=1
En fait c'est comme si le code incrementait "a" une premiere fois apres le t3.append(t2[a]), puis une seconde fois après le t3.append(t1[a]), en effet si je mets un print a juste apres le while a<=b comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 nounours@nounours-desktop:~/Bureau$ python liste_mois.py Janvier 31 Février 28 Mars 31 Avril 30 Mai 31 Juin 30 Traceback (most recent call last): File "liste_mois.py", line 8, in <module> t3.append(t2[a]) IndexError: list index out of range
Python me retourne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 # -*- coding:Utf-8 -*- t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] t2 = ['Janvier','Février','Mars','Avril','Mai','Juin',"Juillet",'Août','Septembre','Octobre','Novembre','Décembre'] t3=[] a=0 b=len(t1) while a<=b: print "a=",a t3.append(t2[a]) t3.append(t1[a]) print t3[a], a+=1
Je ne comprends pas ou est l'erreur, en fait pourquoi a est incrémenter apres chaque append.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 a= 0 Janvier a= 1 31 a= 2 Février a= 3 28 a= 4 Mars a= 5 31 a= 6 Avril a= 7 30 a= 8 Mai a= 9 31 a= 10 Juin a= 11 30 a= 12
Auriez vous une solution ?
Cordialement CHristophe.
Partager