Partage
  • Partager sur Facebook
  • Partager sur Twitter

Alterner 2 instructions dans une boucle impaire

Je suis débutante

Sujet résolu
    26 mars 2015 à 5:29:45

    Bonjour à tous,

    Je débute en python, j'espère que mon sujet est dans la bonne rubrique.

    Je veux faire une boucle while qui alterne deux instructions mais jusqu'à arriver à une condition qui va être réalisée la 9ème fois, un peu comme ce code (le projet sur lequel je travaille est différent mais c'est à peu près le même principe):

        nv_chaine = ""
    
        while nv_chaine != "ababababa":
            nv_chaine=nv_chaine +"a"
            nv_chaine=nv_chaine +"b"
        print(nv_chaine)
    

    Le but c'est d'exécuter cette boucle jusqu'à arriver à nv_chaine = "ababababa"

    J'espère trouver des réponses, merci pour la lecture :)

    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2015 à 13:51:59

      Et donc, c'est quoi vraiment la question ? Car l'exemple que tu donnes semble répondre à ton besoin.
      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2015 à 14:44:27

        Malheureusement, l'exemple n'affiche rien, en utilisant le débug nv_chaine continue au delà de 9 lettres
        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2015 à 14:45:56

          Pourquoi tu ne testes pas sur la longeur de la chaine dans la condition du while au lieu de tester son contenu ?
          • Partager sur Facebook
          • Partager sur Twitter

          Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

            26 mars 2015 à 14:47:46

            De plus ta chaine ne sera jamais egale a ababababa

            Par contre: ababababab

            Est possible...

            Beh oui puisque tu concatenes TOUJOURS le couple ab a ta chaine

            Ta chaine NE PEUT donc PAS finir par ba

            EDIT:Sorry pour le double post...je me suis plante je sais pas comment...

            -
            Edité par mrjay42 26 mars 2015 à 14:48:23

            • Partager sur Facebook
            • Partager sur Twitter

            Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

              26 mars 2015 à 14:52:24

              Je te comprends mrjay42, mais l'exemple est pour me rapprocher du problème du projet qui est:

              Un jeu sur 9 cases, où je dois faire une boucle -qui continue tant que la grille est vide- pour alterner les tours de deux joueurs, le malheur vient du fait que je dois impérativement suivre un gabarit donné (condition du projet)

              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2015 à 14:55:03

                Ouais bon je comprends pas ton enonce.

                Mais en tout cas ton code ne sortira JAMAIS du while

                C'est pour ca que ca continue.

                Donc dans ton code met ca a la place du while:

                while len(nv_chaine) < 10

                Tu verras ton code s'arretera

                -
                Edité par mrjay42 26 mars 2015 à 14:55:52

                • Partager sur Facebook
                • Partager sur Twitter

                Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

                  26 mars 2015 à 14:58:03

                  Tu as deux possibilités. Soit tu places la première instruction en dehors de la boucle comme ceci:

                  nv_chaine = ""
                  

                  nv_chaine=nv_chaine +"a" while nv_chaine != "ababababa":

                  nv_chaine=nv_chaine +"b"
                  nv_chaine=nv_chaine +"a"
                  
                  

                  print(nv_chaine)

                  </pre>

                  Soit tu vérifies ta condition pour sortir au milieu de la boucle comme celà

                  nv_chaine = ""
                  

                  while True:

                  nv_chaine=nv_chaine +"a"
                  if nv_chaine == "ababababa":
                      break
                  nv_chaine=nv_chaine +"b"
                  

                  print(nv_chaine)

                  </pre>
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 mars 2015 à 15:03:25

                    Ouaip la solution de Dan737 est mieux que celle que j'ai proposee :)

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

                      26 mars 2015 à 15:11:36

                      mrjay42 a écrit:

                      Ouais bon je comprends pas ton enonce.

                      ....

                      while len(nv_chaine) < 10

                      Tu verras ton code s'arretera

                      C'est compliqué de tout mettre ici :) mais je vais essayer d'introduire une condition avec nombre

                      Dan737 a écrit:

                      Tu as deux possibilités. Soit tu places la première instruction en dehors de la boucle comme ceci:

                      ........

                      Il me semble que j'ai utilisé la 2ème proposition, je file vérifier tout ca

                      Merci beaucoup :)



                      -
                      Edité par yensoum 26 mars 2015 à 15:12:19

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        26 mars 2015 à 15:28:36

                        for n in range(9):
                            if n % 2:
                                # 'n' est impaire... joueur 2
                            else:
                                # 'n' est paire... joueur 1
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 mars 2015 à 15:36:54

                          Excellente idée celthon, ca marche à merveille merciiiii ^^
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Alterner 2 instructions dans une boucle impaire

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown