Mengapakah menghiris di luar sempadan rentetan tidak menimbulkan ralat dalam Python?
Nampaknya berlawanan dengan intuisi bahawa menghiris rentetan dengan indeks melebihi panjangnya , seperti 'contoh'[999:9999], tidak menghasilkan ralat. Walau bagaimanapun, tingkah laku ini boleh dijelaskan oleh perbezaan asas antara pengindeksan dan penghirisan dalam Python.
Pengindeksan mendapatkan semula satu elemen daripada jujukan, manakala penghirisan mencipta jujukan. Apabila indeks berada di luar julat jujukan, tiada unsur untuk dikembalikan dan ralat berlaku. Walau bagaimanapun, apabila menghiris melebihi julat, urutan kosong masih sah dan boleh dikembalikan dengan berkesan.
Walaupun kelihatan serupa dalam sintaks, 'contoh'[3] dan 'contoh'[3:4] berbeza. Yang pertama mendapatkan semula aksara pada indeks 3, manakala yang terakhir mencipta subrentetan daripada indeks 3 (inklusif) kepada indeks 4 (eksklusif). Perbezaan ini digambarkan lebih lanjut apabila menggunakan senarai:
[0, 1, 2, 3, 4, 5][3] # Returns the element at index 3 (3) [0, 1, 2, 3, 4, 5][3:4] # Returns a list with one element (3)
Dalam kes rentetan, perbezaannya kurang jelas kerana aksara individu bukanlah entiti yang berbeza di luar rentetan. Satu aksara pada asasnya ialah rentetan 1 aksara.
Oleh itu, menghiris melebihi panjang rentetan hanya mengembalikan subrentetan kosong, mencerminkan ketiadaan sebarang urutan yang sah. Tingkah laku ini membolehkan tugasan manipulasi rentetan yang mudah tanpa rasa takut akan ralat atau semakan sempadan yang tidak perlu.
Atas ialah kandungan terperinci Mengapa Python Tidak Menimbulkan Ralat Semasa Menghiris Rentetan Melangkaui Sempadannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!