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
- Penser à ajouter une docstring et des tests unitaires.
- La concaténation de chaines de caractères
motif_1
etmotif_2
se fait avecmotif_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
.