Dalam bidang rentetan Python, kekeliruan sering timbul mengenai tujuan dan kefungsian awalan rentetan "u", "r", dan "ur". Artikel ini bertujuan untuk menjelaskan peranan mereka yang berbeza dan selok-belok literal rentetan mentah.
Bertentangan dengan salah tanggapan biasa, tiada jenis "rentetan mentah" yang berbeza. Sebaliknya, "literal rentetan mentah" merujuk kepada rentetan yang diawali dengan huruf "r", seperti r'...' atau r"""...""". Huruf ini berbeza hanya dalam pengendalian garis miring ke belakang ().
Dalam literal rentetan biasa, garis miring ke belakang yang diikuti oleh aksara lain lazimnya mencetuskan urutan melarikan diri, mewakili aksara khas seperti baris baharu atau tab. Literal rentetan mentah, walau bagaimanapun, mentafsirkan garis miring ke belakang sebagai dirinya sendiri, kecuali apabila ia mendahului petikan tunggal atau berganda penutup yang sebaliknya akan menamatkan rentetan.
Awalan "u" menandakan rentetan Unicode, iaitu objek Unicode jenis unicode. Dalam Python 2.*, u'...' mewakili rentetan Unicode, manakala '...' ialah rentetan bait.
Awalan "r", seperti yang dibincangkan sebelum ini, menandakan rentetan mentah literal. Ia mengekalkan garis miring ke belakang secara literal, menjadikannya berguna untuk ungkapan biasa atau apabila berurusan dengan laluan fail Windows asli. Dalam Python 2.*, kedua-dua r'...' dan r'''...''' menghasilkan rentetan bait.
Awalan "ur" menggabungkan fungsi "u" dan "r" , menghasilkan rentetan Unicode mentah literal. Rentetan Unicode Raw amat berguna apabila bekerja dengan laluan fail yang mengandungi aksara Unicode.
Dalam Python 2.*, terdapat perbezaan antara rentetan bait dan rentetan Unikod. Untuk menukar daripada rentetan Unicode kepada rentetan bait, seseorang boleh menggunakan kaedah .encode(). Untuk menukar daripada rentetan bait kepada rentetan Unikod, seseorang boleh menggunakan kaedah .decode().
Dalam Python 2.*, pengekodan rentetan ditentukan oleh codec yang digunakan untuk menyahkod data bait mentah (semasa mencipta rentetan) atau untuk mengekod data Unicode (semasa mencipta rentetan). Awalan "u" tidak menjejaskan pengekodan rentetan Unicode yang terhasil.
Dalam Python 3.*, rentetan ialah Unikod mengikut lalai dan awalan "u" tidak diperlukan lagi. Selain itu, literal rentetan mentah tidak diperlukan untuk ungkapan biasa kerana garis miring ke belakang tidak dianggap sebagai urutan melarikan diri dalam rentetan mentah.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Awalan Rentetan Python 'u', 'r', dan 'ur'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!