Aller au contenu

La tête à Toto⚓︎

Exercice

Écrire une fonction récursive telle que :

  • toto(0) renvoie '0'
  • toto(1) renvoie '(0 + 0)'
  • toto(2) renvoie '((0 + 0) + (0 + 0))'
  • etc sur le même principe

Indices

  1. Penser à ajouter une docstring et des tests unitaires.
  2. La concaténation de chaines de caractères motif_1 et motif_2 se fait avec motif_1 + motif_2
###

def toto(n):bksl-nl ...bksl-nlbksl-nlbksl-nl

Réponse
🐍 Script Python
def toto(n):
    """Une fonction telle que 
        pour n un entier positif
        on a :

    >>> toto(0)
    '0'
    >>> toto(1)
    '(0 + 0)'
    >>> toto(2)
    '((0 + 0) + (0 + 0))'

    Etc sur le même principe.
    """

    if n == 0:
        return '0'
    else:
        motif = toto(n - 1)
        return '(' + motif + ' + ' + motif + ')'


assert toto(0) == '0'
assert toto(1) == '(0 + 0)'
assert toto(2) == '((0 + 0) + (0 + 0))'

⚠ Notez comment les tests sont inclus dans la docstring, c'est une très bonne pratique. Cela permet d'automatiser les tests, avec doctest.