Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Kod Saya Melemparkan Ralat Indeks Semasa Menjumlahkan Elemen Senarai?

Mengapa Kod Saya Melemparkan Ralat Indeks Semasa Menjumlahkan Elemen Senarai?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 06:31:02455semak imbas

Why Does My Code Throw an IndexError When Summing List Elements?

Membetulkan Ralat Indeks Semasa Mengakses Elemen Senarai dalam Gelung

Percubaan untuk mengakses elemen senarai menggunakan indeks dalam gelung kadangkala boleh mengakibatkan ralat, seperti IndexError atau TypeError. Memahami struktur gelung yang betul adalah penting untuk menyelesaikan isu ini.

Perihalan Ralat:

Pertimbangkan kod berikut:

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

Kod ini bertujuan untuk menjumlahkan nilai senarai. Walau bagaimanapun, ia menimbulkan IndexError apabila dijalankan.

Operasi Gelung:

Apabila menggunakan gelung for dengan objek boleh lelar seperti senarai, pembolehubah gelung (i dalam ini case) mewakili elemen semasa yang boleh dilelang. Dalam kod yang diberikan, gelung berulang ke atas elemen ar, dengan saya mengambil nilai setiap elemen.

Analisis Ralat:

Dalam kod di atas, ralat berlaku apabila cuba mengakses ar[i], yang cuba mendapatkan semula elemen ar yang sepadan dengan nilai i. Walau bagaimanapun, dalam gelung for dengan iterable, i mewakili elemen itu sendiri, bukan indeksnya. Percubaan untuk mengindeks ar menggunakan i secara langsung akan mengakibatkan IndexError jika i berada di luar julat (iaitu, lebih besar daripada atau sama dengan panjang senarai).

Gelung Betul:

Untuk menyelesaikan ralat ini, gelung harus diubah suai untuk mengakses elemen senarai dengan betul:

<code class="python">for i in ar:
    theSum = theSum + i</code>

Versi ini berulang ke atas elemen dalam senarai dan menambah nilai setiap elemen pada jumlah, mengelakkan indeks -ralat yang berkaitan.

Penyelesaian Alternatif:

Pendekatan alternatif untuk menggelungkan elemen senarai dan mengaksesnya mengikut indeks ialah menggunakan julat dan bukannya mengulangi senarai itu sendiri:

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

Pendekatan ini memastikan bahawa saya mengambil semua nilai indeks yang sah untuk ar, menghalang ralat pengindeksan.

Atas ialah kandungan terperinci Mengapa Kod Saya Melemparkan Ralat Indeks Semasa Menjumlahkan Elemen Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn