Teks, tapi dengan method
String Python adalah deretan karakter, dan kamu akan memakai string lebih sering daripada tipe lain mana pun. Setiap nama, label, pesan, URL, path file, dan respons API pasti pernah berupa string.
Buat string dengan tanda kutip: tunggal, ganda, atau tiga:
Tanda kutip tunggal dan ganda bisa saling menggantikan. Pakai yang mana pun yang membuatmu tidak perlu meng-escape karakter. "don't" terlihat rapi; 'don\'t' butuh garis miring terbalik.
String bersifat immutable. Begitu sebuah string ada, kamu tidak bisa mengubah satu karakternya di tempat. Setiap operasi yang tampak mengubah string sebenarnya mengembalikan string baru. Karena itu kamu akan menulis text = text.upper(), bukan hanya text.upper(): tanpa penugasan ulang, string huruf besar yang baru akan dibuang.
Menggabungkan dan mengulang
Dua operator menangani sebagian besar penggabungan string yang kamu butuhkan:
+ menggabungkan string. * mengulang string. Keduanya mengembalikan string baru.
Menggabungkan banyak potongan dengan + cepat menjadi berantakan. Saat kamu mencampur nilai dengan tipe berbeda ke dalam sebuah pesan, pakai f-string saja, seperti di bagian berikutnya.
F-string: cara format yang biasanya kamu pakai
Taruh f di depan tanda kutip pembuka, dan string itu menjadi template. Apa pun di dalam {...} diganti dengan nilai ekspresi tersebut:
Kamu bisa menaruh ekspresi apa pun di dalam kurung kurawal: variabel, aritmetika, pemanggilan method, pemanggilan fungsi. Tapi buat tetap sederhana; kalau kamu tergoda menjejalkan perhitungan tiga baris ke dalam {...}, hitung dulu ke dalam variabel yang diberi nama.
F-string juga mendukung format specifier setelah titik dua, untuk mengatur format angka, padding, dan perataan:
Format spec ini sama dengan yang dipakai str.format() dan layak dibaca sekilas begitu kamu nyaman dengan dasarnya. Kamu belum butuh untuk kode hari pertama.
Slicing: mengambil sepotong
String bisa diakses lewat indeks seperti deret lainnya. Setiap karakter punya posisi yang dimulai dari nol, dan kamu bisa mengambil satu karakter atau satu rentang:
Pola [start:stop:step] juga muncul di list dan deret lain, jadi meluangkan beberapa menit untuk benar-benar memahaminya akan berguna di mana-mana.
Dua hal yang perlu ditekankan:
- Indeks
stoptidak termasuk:word[0:2]mencakup indeks 0 dan 1, bukan 2. - Indeks negatif dihitung dari belakang:
-1adalah karakter terakhir,-2karakter sebelumnya, dan seterusnya.
Cara membalik string
String tidak punya method .reverse() karena immutable, tapi slicing dengan step -1 menyelesaikannya dalam satu baris:
word[::-1] dibaca "dari awal sampai akhir, mundur satu langkah". Hasilnya string yang benar-benar baru; aslinya tidak tersentuh. Kalau kamu perlu menelusuri karakternya secara terbalik tanpa membuat string baru, reversed(word) mengembalikan iterator yang lazy.
Cara mengecek panjang string
len(text) mengembalikan jumlah karakter:
Perhatikan bahwa len menghitung code point Unicode, bukan byte. len("café") adalah 4, bukan 5, meskipun encoding UTF-8-nya memakan lebih banyak byte, dan biasanya memang itu yang kamu mau.
Cara mengecek apakah string mengandung substring
Operator in adalah cara pengecekan yang idiomatis, dan terbaca seperti bahasa Inggris:
Untuk pengecekan tanpa membedakan huruf besar kecil, samakan dulu kedua sisinya:
Kalau kamu butuh posisinya, bukan sekadar ya/tidak, pakai .find(): method ini mengembalikan indeksnya, atau -1 kalau substring-nya tidak ada.
Method string yang umum
String punya puluhan method. Beberapa ini akan terus kamu pakai:
Memecah dan menggabungkan:
.split(separator) mengubah string menjadi list. separator.join(list_of_strings) merekatkannya kembali. Kedua method ini menangani porsi yang sangat besar dari pekerjaan string di dunia nyata.
Satu pasangan lagi yang berguna:
Itu parser untuk satu baris entri konfigurasi, ditulis dalam tiga baris. String kecil, manfaat besar.
Memeriksa isinya
Beberapa method mengembalikan boolean, berguna di kondisi if:
Pakai seperlunya: method ini tidak menangani keunikan Unicode dengan semua cara yang mungkin kamu harapkan. Untuk apa pun di luar ASCII, andalkan module regex atau module unicodedata.
Meng-escape karakter khusus
Beberapa karakter butuh garis miring terbalik agar bisa muncul di dalam string:
Kalau kamu menulis path Windows atau regex, raw string membuat hidup lebih mudah. Taruh r di depan tanda kutip, dan garis miring terbalik tidak lagi menjadi karakter escape:
String ada di mana-mana, jadi jaga agar tetap mudah dibaca
Tiga kebiasaan yang menjaga kode yang penuh string tidak berubah jadi berantakan:
- Pakai f-string untuk interpolasi. Jangan merangkai
+untuk berbagai tipe. - Beri nilai ulang saat kamu "mengubah".
text = text.strip(), bukantext.strip()saja. - Pakai
.split()dan.join()sebelum menulis loop manual untuk mem-parse atau menyusun teks. Keduanya lebih cepat, lebih jelas, dan lebih sulit salah.
Berikutnya: f-string secara mendalam, alat format yang sudah beberapa kali kamu lihat, ditambah spec format angka dan tanggal yang membuatnya layak dikuasai.
Pertanyaan yang sering diajukan
Apa itu f-string di Python?
F-string adalah literal string yang diawali f, dan apa pun di dalam {...} diganti dengan nilai ekspresi tersebut. Contoh: f"Hello, {name}!" memasukkan nilai name saat ini ke dalam string ketika program berjalan.
Bagaimana cara membalik string di Python?
Pakai slicing dengan step -1: reversed_text = original[::-1]. Hasilnya string baru berisi karakter yang sama dengan urutan terbalik. String aslinya tidak berubah karena string di Python bersifat immutable.
Bagaimana cara memecah string di Python?
Panggil .split() pada string-nya. Tanpa argumen, string dipecah di setiap spasi: "a b c".split() mengembalikan ['a', 'b', 'c']. Kamu bisa memberikan pemisah tertentu: "a,b,c".split(",") mengembalikan ['a', 'b', 'c'].
Apakah string Python bisa diubah (mutable)?
Tidak. String bersifat immutable: begitu sebuah string ada, kamu tidak bisa mengubah karakter mana pun di tempatnya. Setiap method yang "mengubah" string sebenarnya mengembalikan string baru. Karena itu kamu melihat pola seperti text = text.strip(): kamu memberi variabelnya string yang baru.
Bagaimana cara menggabungkan string di Python?
Pakai + untuk menggabungkan dua string: "hello" + " " + "world". Untuk memasukkan sebuah nilai ke dalam kalimat, utamakan f-string: f"Hello, {name}". Untuk menggabungkan banyak potongan dari sebuah list, pakai separator.join(pieces): lebih cepat dan lebih enak dibaca daripada + yang dirangkai.
Bagaimana cara mengecek panjang string di Python?
Panggil fungsi bawaan len(text). Fungsi ini mengembalikan jumlah karakter (code point Unicode), jadi len("café") adalah 4. Untuk panjang dalam byte, encode dulu: len(text.encode("utf-8")).