Maximum⚓︎
Écrire une fonction maximum
:
- prenant en paramètre une liste non vide de nombres :
nombres
- renvoyant le plus grand élément de cette liste.
Chacun des nombres utilisés est de type int
ou float
.
:warning: On interdit ici d'utiliser
max
, ainsi quesort
ousorted
.
Exemples
>>> maximum([98, 12, 104, 23, 131, 9])
131
>>> maximum([-27, 24, -3, 15])
24
def maximum(nombres):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nldef maximum(nombres):bksl-nl maxi = nombres[0]bksl-nl for x in nombres:bksl-nl if x > maxi:bksl-nl maxi = xbksl-nl return maxibksl-nlbksl-nlbksl-nl# Testsbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nlbksl-nl
A
Commentaires⚓︎
Il s'agit d'une recherche de maximum classique. La liste étant non-vide, on initialise la variable maxi
avec la première valeur.
{{ py('exo_corr', 0, '# TESTS') }}
Variante récursive⚓︎
def maximum(nombres):
if len(nombres) == 1:
return nombres[0]
dernier = nombres.pop()
maxi = maximum(nombres)
nombres.append(dernier)
if dernier > maxi:
return dernier
else:
return maxi
On prend soin, ici, de reconstruire la liste après l'appel récursif.
Z