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 :

compréhension de liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut compréhension de liste
    bonjour je suis en train d'étudier python

    nous avons vu les compréhensions de listes

    j'ai ici un petit programme simple ou il me semble que ce serait facile de l'écrire en comprehension de liste . pourtant j'ai commencé à y mettre un while et il semble que while ne fonctionne pas dans ceci . D'ailleurs les exemples de cours ne portent que sur for . Quelqu'un pourrait il me dire comment faire pour écrire une compréhension avec while ? merci

    voici mon script à transformer en compréhension : le code est le jeu de puissance 4 ou il faux mettre le jeton"R" rouge dans la colonne de la matrice (3)

    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
    def placer_pion(couleur, colonne, grille):
     
        res = False
     
     
     
        ligne = 0
        while zest==False and ligne < 6 :
     
            if 'V' in grille[ligne][colonne]:
                grille[ligne][colonne] = couleur
     
                res = True
     
            ligne += 1
     
        return res , grille)   #retour demandé
        #return (zest,grille  while  zest==False and ligne < 6 if 'V' in grille[ligne][colonne] ) #début de recherche de ma compréhension mais évidement ratée
     
    print(placer_pion("R", 3,
                         [['V', 'V', 'V', 'J', 'V', 'V', 'V'],
                         ['V', 'V', 'V', 'V', 'V', 'V', 'V'],
                         ['V', 'V', 'V', 'V', 'V', 'V', 'V'],
                         ['V', 'V', 'V', 'V', 'V', 'V', 'V'],
                         ['V', 'V', 'V', 'V', 'V', 'V', 'V'],
                         ['V', 'V', 'V', 'V', 'V', 'V', 'V']])     )

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Il y a des erreurs dans ton code :
    - Ligne 8 : zest n'est pas défini, tu voulais écrire res ?
    - Ligne 17 une parenthèse en trop ou en moins selon ce que tu veux faire...

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par trx337 Voir le message
    Quelqu'un pourrait il me dire comment faire pour écrire une compréhension avec while ?
    Ce que vous abrégez par "compréhension" fabrique une liste (ou une liste de listes).
    "placer_pion" ne cherche pas à fabriquer une nouvelle grille, juste à trouver le premier pion libre de la colonne passée en paramètre.

    Par contre, utiliser une boucle "for" et forcer un return, simplifierait votre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def placer_pion(couleur, colonne, grille):
     
        for ligne in range(6):
            if grille[ligne][colonne] == 'V':
                grille[ligne][colonne] = couleur
                return True, grille
        return False, grille
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    merci j'ai trouvé ceci : mais mon idée premiere était de mettre un while et je ne sais pas faire l'ensemble du code en compréhension mais peut etre est ce mieux d'y renoncer car c'est trop compliqué par rapport à un code classique

    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
    def placer_pion21(couleur, colonne, grille):
        #print(grille)
        res=False
     
        #for ligne in range (6):
     
     
            #if grille[ligne][colonne]=="V" and res==False :
     
                #grille[ligne][colonne] = couleur
                #res=True
     
     
        #return res , grille
        return tuple(True     if grille[ligne][colonne]=="V" and res == False  else False for ligne in range (6)  )

Discussions similaires

  1. Compréhension de liste
    Par fujitsu4 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/12/2013, 17h40
  2. Compréhension de listes
    Par Bonker dans le forum Général Python
    Réponses: 4
    Dernier message: 03/11/2013, 18h02
  3. Liste dynamique compréhension
    Par speedy_g dans le forum Excel
    Réponses: 3
    Dernier message: 01/12/2011, 10h35
  4. compréhension de liste paire par paire
    Par sopsag dans le forum Général Python
    Réponses: 13
    Dernier message: 07/12/2010, 21h36
  5. Syntaxe élégante pour une fusion de compréhension de liste
    Par sopsag dans le forum Général Python
    Réponses: 8
    Dernier message: 23/08/2010, 12h22

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