Menuliskan Karakter Khusus dalam String
Escape sequence ditulis dengan backslash (\) yang diikuti satu atau beberapa karakter. Python membaca gabungan tersebut sebagai satu notasi khusus. Misalnya, \n mewakili baris baru dan \' mewakili tanda kutip tunggal di dalam string yang dibatasi tanda kutip tunggal.
Backslash mengubah cara Python membaca karakter setelahnya. Backslash itu merupakan bagian dari notasi dalam kode sumber, sedangkan string hasilnya berisi karakter yang diwakili notasi tersebut.
Masalah dalam Penulisan String
Tanda kutip dan backslash perlu perhatian di dalam string, karena Python membacanya sebelum string itu terbentuk. Tanda kutip dalam yang sama dengan pembatas akan menutup literal terlalu awal, sedangkan backslash dalam string biasa menandai notasi escape. Menambahkan escape pada karakter itu menjaga karakter tersebut tetap di dalam teks, dan dua backslash menghasilkan satu backslash pada nilai akhir.
Konflik Tanda Kutip
Jika tanda kutip yang sama dipakai sebagai pembatas string dan muncul di dalam teksnya, tanda kutip yang tidak didahului backslash akan menutup literal terlalu awal. Karakter setelahnya lalu dibaca sebagai kode Python yang tidak valid.
# Masalah: tanda kutip tunggal di dalam string
>>> 'I'm Bob.'
SyntaxError: invalid syntax
# Solusi: gunakan tanda kutip ganda untuk string
>>> "I'm Bob."
"I'm Bob."
# Masalah: kedua jenis tanda kutip dalam string
>>> 'He said: "I'm Bob."'
SyntaxError: invalid syntaxKetika kamu menggunakan tanda kutip tunggal untuk membuat string, tetapi di dalam string tersebut juga ada tanda kutip tunggal, Python akan menganggap tanda kutip kedua sebagai penutup string. Akibatnya, bagian setelahnya dianggap sebagai kode yang tidak valid.
Solusi dengan Backslash
Letakkan backslash (\) sebelum tanda kutip yang ingin dimasukkan ke dalam teks. Python lalu membaca tanda kutip tersebut sebagai isi string.
# Menggunakan escape sequence untuk tanda kutip tunggal
>>> 'He said: "I\'m Bob."'
'He said: "I\'m Bob."'
# print menampilkan nilai string setelah escape diproses
>>> print('He said: "I\'m Bob."')
He said: "I'm Bob."Dalam contoh ini, \' memberi tahu Python agar mempertahankan tanda kutip tunggal di dalam teks. String masih berlanjut setelah tanda kutip tersebut.
Menampilkan Karakter Backslash
Untuk menampilkan satu backslash di dalam string biasa, tulis dua backslash berturut-turut.
# Menampilkan backslash dalam string
>>> print('Escape sequence untuk baris baru adalah \\n.')
Escape sequence untuk baris baru adalah \n.
# Menggunakan raw string (prefix r)
>>> text = r'Escape sequence untuk baris baru adalah \n.'
>>> text
'Escape sequence untuk baris baru adalah \\n.'
>>> print(text)
Escape sequence untuk baris baru adalah \n.Prefix raw string seperti r mempertahankan sebagian besar backslash tanpa menafsirkannya sebagai notasi khusus. Tanda kutip tetap harus mengikuti aturan pembatas literal, dan raw string tidak dapat diakhiri dengan jumlah backslash yang ganjil.
Daftar Escape Sequence
Tabel berikut memuat notasi escape yang sering dipakai dalam Python.
| Notasi | Makna |
|---|---|
\' | Tanda kutip tunggal (') |
\" | Tanda kutip ganda (") |
\n | Baris baru (newline) |
\r | Carriage return |
\t | Tab horizontal |
\b | Backspace |
\\ | Karakter backslash () |
\uxxxx | Karakter Unicode dengan code point heksadesimal empat digit |
\Uxxxxxxxx | Karakter Unicode dengan code point heksadesimal delapan digit |
\N{name} | Karakter Unicode berdasarkan nama terdaftarnya |
\xhh | Karakter dengan nilai heksadesimal dua digit |
Setiap notasi menghasilkan karakter tertentu di dalam string. Sebagian mengatur tata letak teks, sedangkan sebagian lain memasukkan karakter yang sulit ditulis langsung.
Escape Kurung Kurawal dalam Format String
Dalam str.format() dan f-string, kurung kurawal menandai bagian yang akan diisi nilai. Kurung kurawal ganda membuat tanda tersebut dibaca sebagai teks biasa. Mekanisme ini berbeda dari notasi backslash di dalam literal string.
# Kurung kurawal yang di-escape dalam format string: {{ }}
>>> '{{}}'.format('text')
'{}'
# Menampilkan teks dengan kurung kurawal
>>> '{{{}}}'.format('text')
'{text}'Tulis {{ untuk menghasilkan { dan }} untuk menghasilkan }. Pada '{{{}}}', pasangan kurung terluar menjadi teks biasa, sedangkan {} di tengah tetap menjadi tempat untuk memasukkan nilai.
Menggabungkan Escape Sequence
Contoh berikut menggabungkan tab dan baris baru bersama tanda kutip dan backslash literal dalam satu output.
# Membuat output terformat dengan tab dan newline
print("Nama\t: John Doe")
print("Umur\t: 25 tahun")
print("Alamat\t: Jakarta\n")
# Menampilkan dialog dengan tanda kutip
print('Dia berkata: "Hari ini cuaca sangat cerah!"')
# Menampilkan path file dengan backslash
print("File tersimpan di: C:\\Users\\Documents\\data.txt")
# Menggabungkan beberapa karakter escape
print("Baris pertama\nBaris kedua\t(dengan tab)\nBaris ketiga")Dalam contoh ini, \t membuat kolom yang rapi, \n memisahkan baris, dan \\ menampilkan path file Windows dengan benar.
Bedakan notasi di dalam kode sumber dari string yang dihasilkan. \n, misalnya, ditulis dengan dua karakter dalam kode sumber tetapi mewakili satu karakter baris baru di dalam string.