Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que j'obtiens une erreur IndexError dans ma boucle « for i in ar » lors de la sommation des valeurs de la liste ?

Pourquoi est-ce que j'obtiens une erreur IndexError dans ma boucle « for i in ar » lors de la sommation des valeurs de la liste ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 13:44:02966parcourir

Why Do I Get an IndexError in My

IndexError dans la boucle "for i in ar" : comprendre l'itération

Lorsque l'on tente de résumer les valeurs d'une liste à l'aide d'une boucle for, on peut rencontrer une IndexError , TypeError ou des résultats incorrects. Cette erreur survient en raison d'une utilisation incorrecte de l'index de liste.

Considérez le code suivant :

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in ar:
        theSum = theSum + ar[i]
    return theSum</code>

Ici, nous avons l'intention de parcourir la liste et d'accumuler les valeurs dans la Somme. Cependant, le code déclenche une IndexError car i représente chaque élément de la liste, pas son index.

Pour parcourir correctement la liste et accéder à ses éléments, il faut modifier le code pour :

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in ar:
        theSum = theSum + i
    return theSum</code>

Alternativement, on peut utiliser une plage pour parcourir des indices de liste valides :

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in range(len(ar)):
        theSum = theSum + ar[i]
    return theSum</code>

Ces modifications garantissent que i représente un index valide dans le liste, empêchant l'IndexError et permettant le calcul correct de la somme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn