Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `julat(mula, tamat)` Python Mengecualikan Nilai `akhir`?

Mengapakah `julat(mula, tamat)` Python Mengecualikan Nilai `akhir`?

Mary-Kate Olsen
Lepaskan: 2024-12-02 22:00:17
asal
341 orang telah melayarinya

Why Does Python's `range(start, end)` Exclude the `end` Value?

Julat(mula, tamat): Mengapa Pengecualian Nilai Tamat?

Fungsi julat(mula, tamat) Python adalah biasa utiliti terpakai yang menjana urutan nombor. Walau bagaimanapun, satu aspek pelik bagi julat() ialah ia mengecualikan nilai akhir. Sebagai contoh, julat(1, 11) mengembalikan [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], berhenti pendek pada 11.

Mengapakah ini berlaku? Jawapannya terletak pada penggunaan luas julat() dan amalan biasa dalam pengaturcaraan.

1. Keseragaman dalam Pengindeksan:

Pengaturcara selalunya memilih pengindeksan berasaskan sifar, di mana elemen pertama jujukan dirujuk sebagai indeks 0. Menggunakan julat(0, 10) akan mengembalikan [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], mengandungi tepat 10 elemen, sejajar dengan panjangnya (len(julat(0, 10))).

2. Menggelung dan Mengulang:

Pertimbangkan struktur gelung biasa:

for i in range(len(li)):
    pass
Salin selepas log masuk

Jika julat() menyertakan nilai akhir, gelung ini akan melelang satu kali melepasi indeks sah senarai li . Pengaturcara mungkin terlupa untuk menolak 1 daripada len(li) apabila menentukan julat, membawa kepada gelung tidak sah.

3. Ketekalan dengan Iterator:

Dalam Python, fungsi range() berfungsi sebagai iterator, menghasilkan nilai satu demi satu. Jika ia termasuk nilai akhir, ia memerlukan semakan atau logik tambahan untuk menamatkan lelaran, menambahkan kerumitan dan potensi ralat.

Menangani Keperluan Penyertaan:

Jika anda sering mendapati diri anda memerlukan nilai akhir untuk disertakan, anda boleh mencipta fungsi tersuai yang memanjangkan fungsi range():

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

print(range1(1, 10))  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Salin selepas log masuk

Dengan memahami sebab di sebalik pengecualian range() terhadap nilai akhir dan dengan menggunakan fungsi tersuai apabila perlu, pengaturcara boleh memanfaatkan alat serba boleh ini dengan berkesan dalam kod Python mereka.

Atas ialah kandungan terperinci Mengapakah `julat(mula, tamat)` Python Mengecualikan Nilai `akhir`?. 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