Mengapa Kod Saya Melemparkan Ralat Indeks Semasa Menjumlahkan Elemen Senarai?

Linda Hamilton
Lepaskan: 2024-10-31 06:31:02
asal
474 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!