IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Rafraichissement d'affichage : probleme de "return" ?


Sujet :

Python

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Par défaut Rafraichissement d'affichage : probleme de "return" ?
    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

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    La fonction print() est là pour ce genre de choses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def Changement_partie (liste, bloc):
        print('liste: %s, bloc: %s' %(liste, bloc))
    Cela dit, lorsque tu auras corrigé ça, tu pourras simplifier ton code comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def Changement_partie (liste, bloc):
        bloc_image = (None, None, social, paysage, social)[bloc+list]
        random.shuffle(bloc_image)
        return bloc_image

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 8
    Par défaut
    D'accord, merci beaucoup !

    Je ne comprends pas ce que fais la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bloc_image = (None, None, social, paysage, social)[bloc+list]

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Citation Envoyé par Ptit_stagiaire Voir le message
    D'accord, merci beaucoup !

    Je ne comprends pas ce que fais la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bloc_image = (None, None, social, paysage, social)[bloc+list]
    Elle fait la même chose que ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        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

Discussions similaires

  1. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo