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 :

Question boucle while/else


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut Question boucle while/else
    Bonjour,
    dans un de mes programmes j'ai une boucle while qui est vraie tant que a!=0. Supposons qu'après plusieurs répétitions, a=0. La boucle se termine et aille donc dans le else. Est-ce que je peux, dans ce else, appeler une fonction qui re-mette la variable "a" différent de 0, puis re-lancer la boucle, ou faut-il que je re-pense la structure de la boucle?
    Merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    J'ai pas très bien compris

    Tu peux mettre ton code, car tes explications sont pas très claires, mais à ce que je comprend un petit peu, ça ressemble plus à un phénomène de récursivité.

    Une fois que tu sors de la boucle, c'est fini.

    Pour éviter de retaper la boucle, il faudrait que ton code où se trouve cette boucle se trouve dans une fonction que tu peux rappeler quand tu le souhaites.

    Mais j'attends un peu plus de précisions de ta part...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut
    En fait pour résumer ma question:
    si on sort d'une boucle, qu'on arrive donc au else, peut-on retourner dedans?

    Mais vous venez de me répondre, merci beaucoup

  4. #4
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Citation Envoyé par Stoos Voir le message
    Bonjour,
    dans un de mes programmes j'ai une boucle while qui est vraie tant que a!=0. Supposons qu'après plusieurs répétitions, a=0. La boucle se termine et aille donc dans le else. Est-ce que je peux, dans ce else, appeler une fonction qui re-mette la variable "a" différent de 0, puis re-lancer la boucle, ou faut-il que je re-pense la structure de la boucle?
    Merci
    C’est effectivement confus, mais la réponse est non*:

    This repeatedly tests the expression and, if it is true, executes the first suite; if the expression is false (which may be the first time it is tested) the suite of the else clause, if present, is executed and the loop terminates.
    C’est clair, ce me semble*: une fois qu’on est dans la partie else, la boucle est terminée.

    À noter que la partie “else” de while n’est pas souvent utilisée, elle n’a d’intérêt que si l’on compte utiliser un break dans la boucle afin d’éviter son exécution… Cas relativement peu fréquent, amha.

    Sinon, ce qu’il te faut, si j’ai bien compris, c’est une double boucle imbriquée, genre*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    a = 10
    while a:
        while a:
            foo(a)
            bar(a)
            a -= 1
        a = new_value()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucles - while - while True, while if, while else
    Par sirelion dans le forum Général Python
    Réponses: 22
    Dernier message: 08/01/2015, 06h36
  2. Question débutant while, if/else
    Par Flo963 dans le forum Langage
    Réponses: 12
    Dernier message: 29/07/2013, 08h27
  3. Question concernant les boucles While
    Par lasrevinu dans le forum C#
    Réponses: 6
    Dernier message: 15/04/2010, 10h45
  4. [MySQL] Imbrication de boucle if /else et while
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/04/2009, 12h11
  5. Réponses: 3
    Dernier message: 11/06/2006, 12h09

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