Aller au contenu

Maximum d'un tableau : valeur et indice⚓︎

Écrire une fonction valeur_et_indice_du_max qui prend en paramètre une liste de nombres entiers valeurs et renvoie un couple donnant le plus grand élément de cette liste, ainsi que l'indice de la première apparition de ce maximum dans la liste.

Pour une liste vide, cette fonction renvoie (None, None)

Il sera ici interdit d'utiliser index ainsi que max.

Exemples
🐍 Console Python
>>> valeur_et_indice_du_max([1, 5, 6, 9, 1, 2, 3, 7, 9, 8])
(9, 3)
>>> valeur_et_indice_du_max([1, 1, 1, 99, 99])
(99, 3)
>>> valeur_et_indice_du_max([10])
(10, 0)
>>> valeur_et_indice_du_max([])
(None, None)
###
# testsbksl-nlbksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 5, 6, 9, 1, 2, 3, 7, 9, 8]) == (9, 3)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 1, 1, 99, 99]) == (99, 3)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([10]) == (10, 0)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([]) == (None, None)bksl-nlbksl-nlbksl-nl# autres testsbksl-nlbksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([100, 5, 6, 9, 1, 2, 3, 7, 9, 8]) == (100, 0)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 5, 6, 9, 1, 2, 3, 7, 9, 800]) == (800, 9)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 1, 1, 199, 199, 5]) == (199, 3)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([100]) == (100, 0)bksl-nlbksl-nl 5/5

def valeurpy-undetpy-undindicepy-unddupy-undmax(valeurs):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 5, 6, 9, 1, 2, 3, 7, 9, 8]) == (9, 3)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([1, 1, 1, 99, 99]) == (99, 3)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([10]) == (10, 0)bksl-nlassert valeurpy-undetpy-undindicepy-unddupy-undmax([]) == (None, None)bksl-nlbksl-nldef valeurpy-undetpy-undindicepy-unddupy-undmax(valeurs):bksl-nl if valeurs == []:bksl-nl return (None, None)bksl-nl else:bksl-nl valeurpy-undmaxi = valeurs[0]bksl-nl indicepy-unddupy-undmaxi = 0bksl-nl for i in range(1, len(valeurs)):bksl-nl x = valeurs[i]bksl-nl if x > valeurpy-undmaxi:bksl-nl valeurpy-undmaxi = xbksl-nl indicepy-unddupy-undmaxi = ibksl-nl return (valeurpy-undmaxi, indicepy-unddupy-undmaxi)bksl-nlbksl-nl

A

Z