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):


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)
            ......
            .....
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 :
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