Bonjour,
Je cherche a faire s'afficher plusieurs blocs d'images, dans un ordre défini par un numéro de liste entré a l'ouverture du programme.
Voici un condensé du code (les listes d'images "paysage" et "social" ainsi que la fonction Afficher(bloc_image) sont bien sûr définies en amont):
Si je ne définie pas bloc_image des le début de ma fonction, j'ai un message d'erreur du type "bloc_image refferenced before assignement". J'ai compris pourquoi a l'aide d'internet mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 def Changement_partie (liste, bloc): bloc_image = bloc_entrainement if bloc == 1 : if liste == 1 : bloc_image = social elif liste == 2: bloc_image = paysage elif bloc == 2 : if liste == 1 : bloc_image = paysage elif liste == 2 : bloc_image = social random.shuffle(bloc_image) return bloc_image if __name__ == '__main__': try: liste = raw_input("Numero de liste ? (1 / 2): ").lower() for k in range (1,2): consigne, bloc_image = Changement_partie(liste,k) Affichage(consigne) ...... .....
je ne comprends pas pourquoi, lorsque je fais tourner le bloc tel que présenté, bloc_image ne devient jamais l'une de mes listes "social" ou "paysage" mais reste toujours bloc_entrainement.
Une erreur de compréhension du fonctionnement de "return" ?
Je vous remercie par avance de votre aide.
NB : je travaille avec python 2.7
Partager