14. Bekerja dengan teks
Bab 12 mencakup alat string sehari-hari: menggabungkan dengan
+ dan f-string, panjang dengan len(), huruf
besar dan kecil, mengulang, dan formatting. Bab ini menambahkan alat
untuk melihat ke dalam sebuah string: memotongnya, mencari
sesuatu di dalamnya, dan mengganti bagian darinya. Di Python, semuanya
ini adalah method yang terpasang langsung pada objek string — tidak
butuh library terpisah.
Slicing dengan s[i:j]
Python menggunakan slice notation untuk mengekstrak
bagian dari sebuah string. Sintaksnya adalah s[start:stop],
di mana start adalah indeks karakter pertama yang kamu
inginkan dan stop adalah indeks setelah karakter
terakhir:
print("hello"[0:3]) # hel
print("hello"[2:]) # llo (from index 2 to the end)
print("hello"[-2:]) # lo (last 2 characters)Tiga hal yang perlu diperhatikan:
- Indeks dimulai dari 0, bukan 1. Karakter pertama
berada di indeks
0, kedua di1, dan seterusnya. - Menghilangkan
stopberarti "sampai akhir string". - Indeks negatif menghitung dari akhir:
-1adalah karakter terakhir,-2adalah kedua dari akhir, dan seterusnya.
Seperti semua operasi string, slicing mengembalikan string baru dan membiarkan yang asli tidak berubah.
String Python menggunakan indeks berbasis 0. Jika kamu ingin karakter
pertama, gunakan s[0], bukan s[1]. Meminta
s[1] memberikan karakter kedua. Ini akan terasa
aneh pada awalnya; lama-lama akan terasa alami.
Buka exercises/14/01-slice.py. Sebuah variable menyimpan
sebuah kata. Menggunakan slicing, cetak hanya huruf pertamanya, lalu
hanya huruf terakhirnya.
Mencari dengan in dan
.find()
Cara paling sederhana untuk memeriksa apakah sebuah string mengandung
sesuatu adalah operator in, yang mengembalikan
True atau False:
print("world" in "hello world") # True
print("z" in "hello world") # FalseKarena mengembalikan boolean, in secara alami
berpasangan dengan if:
sentence = "the password is swordfish"
if "sword" in sentence:
print("Found it.")
else:
print("Not in there.")Ketika kamu juga perlu tahu di mana kecocokannya, gunakan
.find(sub). Ia mengembalikan indeks kemunculan pertama,
atau -1 jika tidak ditemukan:
print("hello world".find("world")) # 6
print("hello world".find("z")) # -1.find() Python mengembalikan -1 ketika
tidak ada kecocokan, bukan None. Untuk menguji keberadaan,
gunakan in — lebih jelas. Gunakan .find()
ketika kamu butuh nomor posisinya.
Mengganti dengan
.replace()
.replace(old, new) mengembalikan string baru dengan
setiap kemunculan old diganti dengan
new:
print("hello".replace("l", "L")) # heLLo
print("a-b-c".replace("-", " ")) # a b cString aslinya tidak berubah. Jika kamu ingin menyimpan hasilnya, simpan di variable:
message = "meet me at noon"
dashed = message.replace(" ", "-")
print(dashed) # meet-me-at-noonMethod string lain yang berguna
String Python punya banyak method. Beberapa yang sering kamu pakai:
| Method | Fungsinya |
|---|---|
s.strip() |
Hapus whitespace di awal dan akhir. |
s.split() |
Pecah berdasarkan whitespace, kembalikan list kata-kata. |
s.split(sep) |
Pecah berdasarkan separator tertentu. |
s.startswith(t) |
True jika s dimulai dengan
t. |
s.endswith(t) |
True jika s diakhiri dengan
t. |
padded = " hello "
print(padded.strip()) # hello
words = "one two three".split()
print(words) # ['one', 'two', 'three']
parts = "a,b,c".split(",")
print(parts) # ['a', 'b', 'c']Pekerjaan Rumah
File pekerjaan rumah ada di exercises/14/homework/.
Soal 1 — Inisial
Buka exercises/14/homework/01-initials.py. Dua variable
menyimpan nama depan dan nama belakang. Menggunakan slicing
(s[0]), cetak inisial orangnya, seperti K.R.
untuk "Keiko Raharja".
Soal 2 — Mengandung
Buka exercises/14/homework/02-contains.py. Sebuah
variable menyimpan sebuah kalimat. Gunakan operator in di
dalam if untuk mencetak yes jika mengandung
kata python, dan no jika tidak.
Soal 3 — Sensor
Buka exercises/14/homework/03-censor.py. Sebuah variable
menyimpan pesan pendek. Gunakan .replace() untuk mengganti
setiap spasi dengan tanda hubung -, lalu cetak.
Tantangan — Panjang kata terakhir
Buka exercises/14/homework/04-last-letter.py. Sebuah
variable menyimpan sebuah kata. Menggunakan indeks negatif dalam slice,
cetak tiga karakter terakhirnya, lalu cetak panjangnya dengan
len(). Buat agar bekerja untuk kata apapun tanpa menghitung
manual.
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.