Merungkai Misteri Huruf Rentetan Mentah dalam Python: Mengapa Bilangan Garis Garis Belakang Ganjil
Tersurat rentetan mentah Python menawarkan cara yang lancar untuk memasukkan aksara khas dalam rentetan tanpa perlu melarikan diri urutan. Walau bagaimanapun, persoalan yang menarik timbul: mengapa rentetan mentah ini tidak boleh diakhiri dengan satu garis miring ke belakang?
Meneroka Konvensyen Rentetan Mentah
Menurut dokumentasi Python, sebarang ganjil bilangan garis miring ke belakang dalam rentetan mentah literal menghasilkan ralat sintaks. Pertimbangkan contoh berikut:
>>> r'\' File "<stdin>", line 1 r'\' ^ SyntaxError: EOL while scanning string literal >>> r'\' '\\' >>> r'\\' File "<stdin>", line 1 r'\\' ^ SyntaxError: EOL while scanning string literal
Dilema Penghurai
Pada pandangan pertama, nampaknya logik bahawa penghurai hanya boleh menganggap garis serik ke belakang dalam rentetan mentah sebagai aksara biasa. Walau bagaimanapun, terdapat nuansa halus yang perlu dipertimbangkan.
Menurut tutorial rasmi Python, "Apabila awalan 'r' atau 'R' hadir, aksara yang mengikuti garis miring ke belakang disertakan dalam rentetan tanpa perubahan dan semua garis miring ke belakang ditinggalkan dalam rentetan." Ini bermakna bahawa mana-mana aksara yang mengikuti garis serong ke belakang ialah bahagian penting rentetan mentah.
Semasa menghurai, apabila jurubahasa menemui garis serong ke belakang dalam rentetan mentah, ia menjangkakan dua aksara (segaris ke belakang dan watak berikut). Ini konsisten dengan dokumentasi yang disebutkan di atas. Oleh itu, penghurai tidak boleh menamatkan rentetan mentah dengan satu garis miring ke belakang kerana ia akan melanggar jangkaan aksara yang berikutnya.
Kesimpulan
Walaupun ketiadaan garis miring terbalik terminal dalam rentetan mentah mungkin kelihatan berlawanan dengan intuitif, ia berpunca daripada tafsiran ketat Python tentang garis miring ke belakang sebagai penunjuk aksara khas dalam rentetan mentah. Konvensyen ini memastikan bahawa rentetan mentah kekal sebagai alat yang boleh dipercayai untuk mewakili teks dengan keperluan pemformatan khusus tanpa memerlukan urutan pelarian yang rumit.
Atas ialah kandungan terperinci Mengapa Rentetan Mentah Python Tidak Boleh Diakhiri dengan Segaris Belakang Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!