12. Strings
String adalah nilai yang paling sering kamu cetak. Python punya banyak alat untuk string yang sudah terpasang langsung pada objek string: menggabungkan, mengukur, mengubah huruf, mengulang, dan memformat angka ke dalamnya. Bab ini mencakup yang paling sering kamu pakai sehari-hari.
Menggabungkan string
dengan + dan f-string
Kamu bisa menggabungkan dua string dengan + (operator
concatenation). Hasilnya adalah satu string baru dengan
yang kedua menempel di akhir yang pertama:
first = "Hello, "
second = "world!"
print(first + second) # Hello, world!Variable aslinya tidak berubah — + membangun string
baru.
+ di Python tidak otomatis mengonversi angka menjadi
string. Menambahkan angka ke string adalah error:
level = 7
# print("Level " + level) # TypeError: can only concatenate str to strSolusinya adalah membungkus angka dengan str(), atau
menggunakan f-string, yang merupakan pendekatan Python
yang lebih disukai:
level = 7
print("Level " + str(level) + " complete") # Level 7 complete
print(f"Level {level} complete") # Level 7 completeSebuah f-string dimulai dengan huruf f sebelum tanda
kutip pembuka. Semua ekspresi di dalam {} dievaluasi dan
disisipkan ke dalam string. F-string menangani angka, boolean, dan tipe
lainnya secara otomatis.
Panjang string dengan
len
Fungsi len() mengembalikan panjang string dalam
karakter:
print(len("hello")) # 5
print(len("")) # 0
greeting = "Welcome"
print(len(greeting)) # 7Pakai len() kapanpun kamu butuh panjang sebuah string —
untuk memusatkan teks, memeriksa panjang input, atau membangun
border.
Buka exercises/12/01-length.py. Tambahkan baris yang
mencetak panjang namamu sendiri.
Mengubah huruf
Method string berada langsung pada objek string, dipanggil dengan
titik. Dua yang sederhana adalah .upper() dan
.lower(). Keduanya mengembalikan string
baru dan membiarkan yang asli tidak berubah:
name = "Keiko"
print(name.upper()) # KEIKO
print(name.lower()) # keiko
print(name) # Keiko (still the original)Mengulang sebuah string
Mengalikan string dengan integer menggunakan *
mengulanginya sebanyak itu:
print("-" * 20) # --------------------
print("ab" * 3) # ababab
print("=" * 4 + " TITLE " + "=" * 4) # ==== TITLE ====Ini adalah alat yang tepat untuk menggambar border atau padding teks.
Formatting dengan f-string
Ketika kamu perlu menyisipkan angka atau teks ke tempat-tempat
tertentu, f-string adalah pendekatan standar. Letakkan ekspresi apapun
di dalam {}:
name = "Keiko"
level = 7
hp = 95
print(f"{name} (Lv {level}) HP {hp}")
# Keiko (Lv 7) HP 95Untuk mengontrol tempat desimal dan formatting angka, tambahkan spesifikasi format setelah titik dua di dalam kurung kurawal:
| Spesifikasi format | Fungsinya | Contoh output |
|---|---|---|
{x} |
konversi default | Keiko atau 7 |
{x:.2f} |
float dengan dua tempat desimal | 3.14 |
{x:d} |
integer | 7 |
{x:10} |
pad ke lebar 10 | Keiko |
price = 3.14159
print(f"Price: {price:.2f}") # Price: 3.14Buka exercises/12/02-format.py. Ubah f-string sehingga
outputnya berbunyi Keiko has 95 HP at level 7.
Escape sequence
Beberapa karakter sulit dimasukkan dalam string karena bertabrakan
dengan tanda baca Python. Solusinya adalah escape
sequence — sebuah backslash \ diikuti huruf, yang
Python ganti dengan karakter khusus itu:
| Urutan | Menjadi apa |
|---|---|
\n |
baris baru (pindah ke baris berikutnya) |
\t |
tab |
\" |
tanda kutip ganda harfiah |
\' |
tanda kutip tunggal harfiah |
\\ |
backslash harfiah |
Contoh:
print("Line 1\nLine 2\nLine 3")
# Line 1
# Line 2
# Line 3
print("Name\tLevel\tHP")
# Name Level HP
print("She said \"hi\" and waved.")
# She said "hi" and waved.String multi-baris
Ketika sebuah string mencakup banyak baris dengan banyak tanda kutip,
escape sequence jadi ramai. Python menawarkan string dengan tanda kutip
tiga: """ untuk membuka dan """ untuk menutup
(atau ''' dan '''). Apapun di antaranya adalah
string, termasuk baris baru dan tanda kutip:
poem = """
Roses are red,
Violets are blue,
"Pick a number,"
said the program to you.
"""
print(poem)Setelah dibuat, string dengan tanda kutip tiga adalah string biasa — hanya cara penulisan yang lebih nyaman.
Pekerjaan Rumah
Soal 1 — Keras dan pelan
Buka exercises/12/homework/01-loud-and-quiet.py.
Variable starter menyimpan namamu. Cetak tiga kali: apa adanya, dalam
huruf besar, lalu dalam huruf kecil.
Soal 2 — Baris statistik
Buka exercises/12/homework/02-stat-line.py. Tiga
variable dideklarasikan di atas: sebuah string name, sebuah integer
level, sebuah integer hp. Menggunakan f-string, cetak satu baris dalam
bentuk persis ini:
Keiko Lv 7 HP 95
Label (Lv, HP) dan spasi di antara field
bisa berupa spasi harfiah di dalam f-string.
Soal 3 — Puisi tiga baris dalam satu baris
Buka exercises/12/homework/03-three-line-poem.py. Cetak
puisi tiga baris menggunakan tepat satu pemanggilan
print. Pemisah baris harus berasal dari \n di
dalam string. Tambahkan komentar # setelah pemanggilan
print yang menjelaskan mengapa satu print bisa menghasilkan
tiga baris.
Tantangan — Blok judul
Buka exercises/12/homework/04-title-block.py. Sebuah
variable menyimpan judul (string apapun yang kamu suka). Cetak blok
seperti ini, di mana baris tanda hubung atas dan bawah sesuai dengan
panjang judul ditambah dua tanda hubung di setiap sisi:
----- INVENTORY -----
Inside text goes here
----- INVENTORY -----
Gunakan "-" * n dan len() untuk mengukur
border tanpa menghitung manual. Mengubah judul harus secara otomatis
mengubah panjang border.
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.