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
.
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-nlbksl-nlassert maximum([98, 12, 104, 23, 131, 9]) == 131bksl-nlassert maximum([-27, 24, -3, 15]) == 24bksl-nlbksl-nl
A
Il s'agit d'une recherche de maximum classique. La liste étant non-vide, on initialise la variable maxi
avec la première valeur.
Variante récursive⚓︎
def maximum(nombres, i=0):
"renvoie le maximum parmi les nombres d'indices i jusqu'à la fin"
if i == len(nombres) - 1:
return nombres[i]
else:
maxi = maximum(nombres, i+1)
if nombres[i] > maxi:
return nombres[i]
else:
return maxi
Z