Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Garis Sentak Terbalik Berganda dalam Perwakilan Rentetan Python?
Bulat Belakang Menggandakan Dalam Rentetan: Menyelidiki Perwakilan
Dalam Python, apabila mencipta rentetan dengan garis miring ke belakang, kejadian yang membingungkan ialah pertindihannya. Pertimbangkan contoh:
my_string = "why\does\it\happen?" print(my_string)
Hasil yang dijangkakan ialah rentetan dengan hanya garis miring ke belakang tunggal, tetapi sebaliknya keluaran menunjukkan garis miring ke belakang berganda:
why\does\it\happen?
Untuk memahami tingkah laku ini, kita perlu teroka konsep perwakilan.
String Perwakilan
Objek python, termasuk rentetan, mempunyai kaedah khas yang dipanggil __repr__() yang menyediakan perwakilannya. Perwakilan ini digunakan apabila objek dihantar ke fungsi terbina dalam seperti repr() atau dipanggil melalui konsol. Apabila kita mencetak my_string, representasinya yang kita lihat.
print(repr(my_string)) # 'why\does\it\happen?'
Backlashes and Escape Sequences
Dalam Python, backslash () ialah watak melarikan diri digunakan untuk mewakili aksara khas seperti baris baharu (n) dan tab (t). Walau bagaimanapun, ini juga boleh menyebabkan kekeliruan apabila menggunakannya dalam rentetan.
print("this\text\is\not\what\it\seems") # this ext\is\not\what\it\seems
Untuk mengelakkan konflik, Python membenarkan melarikan diri daripada garis serong terbalik itu sendiri dengan menggandakannya () untuk menunjukkan bahawa anda ingin watak itu menjadi sebahagian daripada rentetan.
print("this\text\is\what\you\need") # this\text\is\what\you\need
Perwakilan dan Garis Sentak Belakang
Sekarang, mari kembali kepada senario asal kita. Apabila kami mencetak my_string, kami sebenarnya melihat perwakilannya. Perwakilan ini termasuk garis miring ke belakang yang terlepas, walaupun rentetan asas hanya mengandungi garis miring ke belakang tunggal. Ini kerana Python bermain selamat dengan melarikan diri dari semua garis miring ke belakang dalam perwakilannya untuk mengelakkan kemungkinan konflik.
Untuk mendapatkan nilai rentetan sebenar, kita boleh menggunakan fungsi terbina dalam len():
len(my_string) # 17
Dalam kes ini, panjang my_string ialah 17, menunjukkan bahawa ia mengandungi hanya satu garis miring ke belakang.
Kesimpulan
Penduaan garis miring ke belakang dalam perwakilan rentetan bukanlah ralat tetapi langkah keselamatan. Ia memastikan bahawa perwakilan menggambarkan dengan tepat tingkah laku rentetan, tanpa mengira aksara yang terkandung di dalamnya. Walau bagaimanapun, nilai rentetan sebenar hanya mengandungi garis miring ke belakang tunggal.
Atas ialah kandungan terperinci Mengapa Garis Sentak Terbalik Berganda dalam Perwakilan Rentetan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!