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 :

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...].
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
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
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
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
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
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
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
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
Je ne comprends pas ou est l'erreur, en fait pourquoi a est incrémenter apres chaque append.
Auriez vous une solution ?
Cordialement CHristophe.