Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Fungsi `range()` Python Mengecualikan Bound Atas?
Mengapa Fungsi Julat Mengecualikan Sempadan Atas
Dalam Python, fungsi julat(mula, tamat) menjana jujukan nombor bermula dari mula dan berakhir sebelum tamat. Tingkah laku ini boleh mengelirukan bagi sesetengah pengguna yang menjangkakan julat akan disertakan akhir.
Sebab untuk pengecualian ini terletak pada penggunaan biasa julat(0, 10). Apabila digunakan dengan permulaan 0, julat mengembalikan [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], iaitu urutan yang dikehendaki dengan 10 elemen. Ini sepadan dengan panjang jujukan yang dijana, memastikan bahawa bilangan lelaran adalah betul dalam gelung dan aplikasi lain.
Selain itu, mengecualikan sempadan atas membolehkan sintaks gelung yang lebih bersih. Pertimbangkan coretan kod:
for i in range(len(li)): pass
Jika julat disertakan tamat, kod di atas akan menimbulkan ralat apabila saya mencapai len(li) kerana ia akan cuba mengakses elemen di luar sempadan senarai. Mengecualikan sempadan atas menghapuskan kemungkinan ralat ini.
Pengaturcara biasanya lebih suka menggunakan untuk gelung dengan i antara 0 hingga len(li) - 1 daripada 1 hingga len(li). Ini disebabkan oleh kelaziman pengindeksan berasaskan 0 dalam pengaturcaraan.
Untuk pengguna yang memilih untuk menyertakan sempadan atas, fungsi tersuai boleh dibuat:
def range1(start, end): return range(start, end + 1)
Menggunakan julat1(1 , 10) akan menghasilkan urutan yang dikehendaki bagi [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Atas ialah kandungan terperinci Mengapa Fungsi `range()` Python Mengecualikan Bound Atas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!