Partage
  • Partager sur Facebook
  • Partager sur Twitter

mon programme fait une boucle non voulu

    23 avril 2016 à 9:46:32

    Bonjour à tous,
    Pourriez-vous me dire pourquoi le programme ci-dessous tourne en boucle :
    def cube(nombre) :
        print (nombre**3)
        return cube(nombre)
    
    def par_trois(nombre) :
        if nombre%3==0:
            return cube(nombre)
        else :
            return False
    
    par_trois(9)
    Il fini au bout d'un moment par l'erreur :
    RuntimeError: maximum recursion depth exceeded in comparison
    Comment puis-je ne faire exécuter mon programme qu'une fois.
    Je vous remercie de votre aide.
    Bonne journée à tous.
    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2016 à 9:56:48

      cube(nombre) est récursive et elle n'a pas de condition de sortie, donc au bout d'un moment ça crash à coup sur ! (car elle s'appelle elle-même sans arrêt)

      (d'ailleurs elle n'a pas besoin de s'appeler à la fin non ? tu peux supprimer purement et simplement la ligne du return)

      -
      Edité par bnwp 23 avril 2016 à 9:57:34

      • Partager sur Facebook
      • Partager sur Twitter
        23 avril 2016 à 10:19:39

        Merci beaucoup à toi bnwp,

        Il m'a juste suffit d'enlever return dans ma définition de cube que je croyais indispensable.

        Bonne journée à toi.

        • Partager sur Facebook
        • Partager sur Twitter

        mon programme fait une boucle non voulu

        × 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