Aller au contenu

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

  1. Penser à ajouter une docstring.
  2. Pour obtenir la copie d'une tranche du second élément jusqu'à la fin, on peut écrire nombres[1:]
  3. Utiliser une variable pour stocker un résultat à utiliser plusieurs fois.
  4. 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