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 :

Boucle while. Pas trop pigé en fait.


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chômeur professionnel
    Inscrit en
    Novembre 2020
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chômeur professionnel

    Informations forums :
    Inscription : Novembre 2020
    Messages : 122
    Points : 14
    Points
    14
    Par défaut Boucle while. Pas trop pigé en fait.
    Yo,

    Bon j'ai écrit ce petit code. Et la vérité c'est que j'ai toujours pas trop compris comment fonctionne while. Puisqu'ya 6 iterations j'arrive pas trop à piger pourquoi j'ai pas des doublons dans tous les sens. J'ai exactement le résultat que je voulais obtenir.
    Pour empirer le truc je peux même remplacer < par != et ça fonctionne quand même.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    list_one = ["one", "two", "three"]
    list_two = ["four", "five", "six"]
    list_two.reverse()
     
    while len(list_one) < 6:
        list_popped = list_two.pop()
        list_one.append(list_popped)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    list_one = ["one", "two", "three"]
    list_two = ["four", "five", "six"]
    list_two.reverse()
    iteration = 1
    while iteration < 4:
        list_popped = list_two.pop()
        list_one.append(list_popped)
        iteration += 1
    Et là j'essaye un autre avec le même résultat mais itération différente.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Yuseph Voir le message
    Puisqu'ya 6 iterations j'arrive pas trop à piger pourquoi j'ai pas des doublons dans tous les sens.
    Déjà ajoutez un "print" à l'intérieur du bloc while pour vérifier qu'il y a (ou pas) 6 itérations.

    Si ce n'est pas le cas, c'est que vous partez sur une hypothèse non fondée pour raconter une histoire qui n'existe pas. Et imaginer ce que fait un code sans vérifier qu'il le fait vraiment, c'est juste se prendre le chou pour rien.

    Soyez plus rigoureux.... ou vous serez perdu!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 698
    Points : 30 997
    Points
    30 997
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Yuseph Voir le message
    Bon j'ai écrit ce petit code. Et la vérité c'est que j'ai toujours pas trop compris comment fonctionne while.
    Peut-être aurais-dû tu écrire un code un peu plus simple, sans mettre du pop() dans un sens et du append() dans l'autre. C'est pourtant pas compliqué à comprendre: while expression boucle tant que l'expression est booléennement vraie.

    Citation Envoyé par Yuseph Voir le message
    J'ai exactement le résultat que je voulais obtenir.
    Tu devrais être content alors !!! Il y en a tant qui viennent se plaindre que ça marche pas et toi, tu viens te plaindre que ça marche...

    Citation Envoyé par Yuseph Voir le message
    Pour empirer le truc je peux même remplacer < par != et ça fonctionne quand même.
    Et tu ne comprends pas pourquoi??? Tu ne comprends pas que si a est plus petit que b alors a est aussi différent de b ???
    C'est comme si tu disais "je comprends pas, je demande un animal mais quand je demande un chat j'obtiens aussi un animal"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Chômeur professionnel
    Inscrit en
    Novembre 2020
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chômeur professionnel

    Informations forums :
    Inscription : Novembre 2020
    Messages : 122
    Points : 14
    Points
    14
    Par défaut
    Oui effectivement avec print dans la boucle on y voit plus clair.

    Non c'est que je pige pas pourquoi avec len il faut au moins 4 iterations avant qu'il commence à se passer quelque chose.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 698
    Points : 30 997
    Points
    30 997
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Yuseph Voir le message
    Non c'est que je pige pas pourquoi avec len il faut au moins 4 iterations avant qu'il commence à se passer quelque chose.
    Tu penses alors que les 3 premières itérations ne font rien? Ce qui signifierait donc que les instructions list_two.pop() et list_one.append() n'ont pas d'effet?

    Il ne faut pas dire "il ne se passe rien" quand la véritable phrase est "ce sont mes yeux qui ne voient rien se passer"
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    list_one = ["one", "two", "three"]
    list_two = ["four", "five", "six"]
     
    while len(list_one) < 6:
    	print(list_one, list_two)
    	list_one.append(list_two.pop(0))
    Maintenant, au lieu de boucler sur list_one, perso c'est list_two qui m'aurait servi de contrôle de boucle mais ça c'est juste ma façon de faire

    Citation Envoyé par Yuseph Voir le message
    avec print dans la boucle on y voit plus clair.
    On se demande quel type de print tu y as mis...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Yuseph Voir le message
    Non c'est que je pige pas pourquoi avec len il faut au moins 4 iterations avant qu'il commence à se passer quelque chose.
    Que voulez vous qu'il se passe?

    A chaque itération, on retire un élément d'une liste pour l'ajouter à une autre... et on recommence tant que la liste qu'on remplit a une longueur inférieure à N.

    Les vraies questions seraient plutôt de savoir s'il y a assez d'éléments à ajouter pour que la condition soit vraie ou pourquoi cette condition plutôt que tant que la liste de départ n'est pas vide.

    Pour le reste, pour ajouter le contenu d'une liste à une autre, on écrira plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> list_one = ["one", "two", "three"]
    >>> list_two = ["four", "five", "six"]
    >>> list_one += list_two
    >>> list_one
    ['one', 'two', 'three', 'four', 'five', 'six']
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. tour de boucle while en trop
    Par floawed dans le forum C
    Réponses: 4
    Dernier message: 29/11/2010, 22h26
  2. boucle while loop trop lente et pennible
    Par jm_force dans le forum Access
    Réponses: 3
    Dernier message: 10/08/2006, 17h36
  3. [Tableaux] Ma boucle While ne va pas !!!
    Par tigzirt dans le forum Langage
    Réponses: 7
    Dernier message: 05/05/2006, 11h47
  4. Boucle While ne marche pas
    Par soltani.slim dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 10h41
  5. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35

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