1. Le problème est qu'on ne peut pas diviser par 0, or faire "for i in range(n)" fera aller la variable i de 0 à n, comprenant 0. Alors, en faisant 1/i, on fait 1*0 or cela n'est mathématiquement pas possible.
On peut changer la ligne 3 par
for i in range(1,n):
2. a) Le problème est qu'en faisant while indice <= len(L), on arrive à la longueur de la liste (donc 4). Or, on cherche après L[indice], donc L[4], qui n'existe pas car les indices vont de 0 à 3. (ici, L[3] renvoie 1, le dernier élément de la liste)
1. il y a une erreur de division par 0 lorsque i vaut 0, pour la corriger il faut que tu ajoutes une condition pour exclure la division 0 :
def somme(n) : total = 0 for i in range(n): if i != 0: total = total + 1/i return total
2. a. le problème se situe dans la condition while, la boucle doit s'exécuter tant que l'indice est inférieur à la longueur de la liste et non pas supérieur ou égal. pour corrige ça remplace juste le > par un < dans la condition.
while indice < len(L) :
b. la fonction va renvoyer -2 lors de l'exécution de maxi. pour qu'elle renvoie le bon résultat il faut que tu initialise la variable maximum avec une valeur très négative :
Lista de comentários
Verified answer
Réponse :
1. Le problème est qu'on ne peut pas diviser par 0, or faire "for i in range(n)" fera aller la variable i de 0 à n, comprenant 0. Alors, en faisant 1/i, on fait 1*0 or cela n'est mathématiquement pas possible.
On peut changer la ligne 3 par
for i in range(1,n):
2. a) Le problème est qu'en faisant while indice <= len(L), on arrive à la longueur de la liste (donc 4). Or, on cherche après L[indice], donc L[4], qui n'existe pas car les indices vont de 0 à 3. (ici, L[3] renvoie 1, le dernier élément de la liste)
Donc, on peut remplacer la ligne 4 par :
while indice < len(L):
b)
def maxi(L):
indice = 0
maximum = None
while indice < len(L):
if maximum is None or L[indice] > maximum :
maximum = L[indice]
indice += 1
return maximum
Explications :
Réponse :
Bonsoir
1. il y a une erreur de division par 0 lorsque i vaut 0, pour la corriger il faut que tu ajoutes une condition pour exclure la division 0 :
def somme(n) :
total = 0
for i in range(n):
if i != 0:
total = total + 1/i
return total
2. a. le problème se situe dans la condition while, la boucle doit s'exécuter tant que l'indice est inférieur à la longueur de la liste et non pas supérieur ou égal. pour corrige ça remplace juste le > par un < dans la condition.
while indice < len(L) :
b. la fonction va renvoyer -2 lors de l'exécution de maxi. pour qu'elle renvoie le bon résultat il faut que tu initialise la variable maximum avec une valeur très négative :
maximum = -float("inf")
Bonne soirée à toi