Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Fungsi `range()` Python Mengecualikan Nilai Akhir?

Mengapa Fungsi `range()` Python Mengecualikan Nilai Akhir?

Susan Sarandon
Susan Sarandonasal
2024-11-29 09:52:10330semak imbas

Why Does Python's `range()` Function Exclude the End Value?

Memahami Gelagat Julat Python: Mengecualikan Penghujung

Fungsi julat() Python, apabila dipanggil dengan parameter mula dan akhir, menjana jujukan nombor bermula dari parameter mula, dan berakhir sebelum parameter akhir. Tingkah laku ini boleh mengelirukan bagi sesetengah pengaturcara, yang mungkin menjangkakan penghujungnya akan disertakan dalam jujukan.

Untuk memahami rasional di sebalik reka bentuk ini, adalah berguna untuk mempertimbangkan beberapa perkara:

  • Pengindeksan Berasaskan 0: Dalam Python, banyak struktur data, seperti senarai, mula mengindeks daripada 0. Memanggil range(0, 10) akan menjana jujukan 10 elemen, dari 0 hingga 9.
  • Panggilan Inklusif: Jika julat() menyertakan parameter akhir, ini akan memecahkan amalan biasa menggunakan julat(len(senarai)) untuk lelaran melalui senarai. Menaikkan indeks kepada panjang senarai akan termasuk elemen di luar sempadan, yang membawa kepada ralat.
  • Pengertian: Reka bentuk julat() membolehkan penggunaan yang lebih fleksibel. Sebagai contoh, anda boleh menjana jujukan dengan permulaan bukan sifar, atau langkah negatif (langkah). Termasuk penghujung akan mengehadkan kes penggunaan ini.

Walaupun pada mulanya kelihatan berlawanan dengan intuitif, pengecualian hujung dalam julat() berfungsi untuk tujuan praktikal dan logik. Ia memastikan konsistensi dengan amalan pengaturcaraan biasa, mengekalkan keserasian ke belakang dengan kod sedia ada dan menyediakan fungsi yang lebih serba boleh untuk menjana jujukan berangka.

Jika anda perlu memasukkan penghujung dalam jujukan anda, anda boleh menentukan fungsi tersuai yang memanjangkan kelakuan julat:

def range_inclusive(start, end):
    return range(start, end + 1)

Fungsi ini akan berkelakuan serupa dengan julat(), tetapi ia akan memasukkan parameter akhir dalam yang dihasilkan turutan.

Atas ialah kandungan terperinci Mengapa Fungsi `range()` Python Mengecualikan Nilai Akhir?. 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