Ancien Responsable Matière Linou Posted February 27, 2021 Ancien Responsable Matière Posted February 27, 2021 Bonsoir, Est-ce que quelqu'un aurait la foi et la gentillesse d'expliquer ce qu'il se passe dans ce programme pour les 2 * ? merciiii Quote
Ancien Responsable Matière Linou Posted February 27, 2021 Author Ancien Responsable Matière Posted February 27, 2021 est ce que return va remettre la "situation" à l'étape avant longueur = 0 (donc avant de printer), donc à l'étape où longueur = 1 ? si oui pourquoi ? et comment ensuite on passe à la première lettre qui vaut b après le A ? bref en gros j'ai rien compris merci Quote
Ancien du Bureau Solution Sans-Visage Posted March 3, 2021 Ancien du Bureau Solution Posted March 3, 2021 Salut ! Alors je colle le programme : from printer import * def mot(lg,lettre): if lg == 0 : print(lettre) return mot(lg-1, lettre+"a") mot(lg-1, lettre+"b") mot(lg-1, lettre+"c") mot( int(input()),"" ) Return te permet juste d'arrêter le programme "en cours". C'est à dire que, dans l'ordre, le programme débute, il compare lg à 0 (qui n'est pas égal dès le début, sinon il y a pas de lettre, évidemment). On passe à mot(lg-1,lettre+"a"), c'est à dire qu'on va commencer par rajouter un a Imaginons que lg soit 2, on est donc à lg = 1 et lettre = a On recommence le programme (depuis tout en haut) avec ces variables, et on a lg = 0 et lettre = aa On recommence le programme, mais cette fois on a lg == 0, donc on imprime "aa", et on arrête le programme en cours (lg = 0, lettre = aa) pour retourner au dernier programme laissé en suspend dans la récursivité, à savoir lg = 1, lettre = a. Et maintenant on va faire la même chose pour obtenir ab. Est-ce que ça t'aide à comprendre comment ça s'enchaine ? Yayou, Fantôme and Shrex 1 1 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.