Maximum d'une liste non vide⚓︎
Exercice
Écrire une fonction récursive maxi
telle que maxi(nombres)
renvoie le maximum de la liste nombres
qui est non vide.
Indices
- Penser à ajouter une docstring.
- Pour obtenir la copie d'une tranche du second élément jusqu'à la fin, on peut écrire
nombres[1:]
- Utiliser une variable pour stocker un résultat à utiliser plusieurs fois.
- Utiliser une fonction qui renvoie le maximum de deux nombres.
###
def maxi(nombres):bksl-nl ...bksl-nlbksl-nlbksl-nlassert maxi([7]) == 7bksl-nlassert maxi([7, 13]) == 13bksl-nlassert maxi([13, 7]) == 13bksl-nlassert maxi([-19, -13, -19]) == -13bksl-nlbksl-nl
Réponse
🐍 Script Python
def maxi(nombres):
"""Renvoie le maximum de la liste non vide de nombres"""
debut = nombres[0]
if len(nombres) == 1:
return debut
else:
maxi_fin = maxi(nombres[1:])
if maxi_fin > debut:
return maxi_fin
else:
return debut
assert maxi([7]) == 7
assert maxi([7, 13]) == 13
assert maxi([13, 7]) == 13
assert maxi([-19, -13, -19]) == -13