Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `julat(mula, tamat)` Python Mengecualikan Nilai `akhir`?
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
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]
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!