Soal 1Apa hasil dari string.Template("Hi $name").substitute(name="Bob")?
string dan textwrap — Konstanta Karakter, Template, dan Formatting
Konstanta string.ascii_letters / digits dan substitusi $name string.Template, penghapusan indent textwrap.dedent dan wrap lebar fill dijalankan via template email pesanan.
Untuk apa string dan textwrap
string dan textwrap adalah modul helper yang melengkapi penanganan string sehari-hari. string menyediakan konstanta karakter (kumpulan huruf, digit, dan simbol) serta Template (substitusi template gaya $name); textwrap menangani formatting string multi-baris (penghapusan indent dan wrap lebar). Kamu akan menggunakannya saat f-string atau replace tidak cukup.
string — Konstanta Karakter dan Substitusi Template
Modul string punya dua jenis fitur. Yang pertama adalah konstanta karakter seperti string.ascii_letters (52 huruf), string.digits (0–9), dan string.punctuation (simbol), yang menghemat kamu dari mendefinisikan sendiri "apa yang dianggap huruf / digit".
Yang kedua adalah string.Template — kamu menyisipkan variabel berawalan $ gaya $name di dalam string, lalu menggantinya dengan substitute(name="value"). Terlihat mirip f-string (f"{name}"), tetapi Template punya parser yang sederhana dan aman, jadi cocok ketika template itu sendiri berasal dari input pengguna (misalnya template body email).
$name di string dengan nilai melalui substitute.| Konstanta / Class | Isi | Kegunaan |
|---|---|---|
| string.ascii_lowercase | abcdefghijklmnopqrstuvwxyz | 26 huruf kecil |
| string.ascii_uppercase | ABCDEFGHIJKLMNOPQRSTUVWXYZ | 26 huruf besar |
| string.ascii_letters | gabungan keduanya (52 karakter) | cek huruf, generasi string acak |
| string.digits | 0123456789 | cek digit |
| string.punctuation | ! " # $ % & ' ... dst | cek simbol |
| string.Template(s) | class template gaya $name | body email, template notifikasi |
textwrap — Menghapus Indent Triple-Quote dan Wrap Lebar
textwrap adalah modul standard library untuk merapikan tampilan string. Dua fungsi yang paling sering kamu pakai adalah textwrap.dedent (yang menghapus common leading indent dari teks yang ditulis dalam bentuk triple-quoted) dan textwrap.fill (yang wrap string panjang ke lebar tertentu).
Ketika kamu menulis string multi-baris seperti """...""" dalam kode, indent di level source ikut tertanam ke string itu sendiri. dedent hanya menghapus common leading whitespace, jadi kode kamu tetap rapi terindentasi sementara string-nya keluar bersih.
| Fungsi | Apa yang dilakukan | Mengembalikan |
|---|---|---|
| textwrap.dedent(text) | menghapus common leading indent | string yang sudah bersih |
| textwrap.fill(text, width=N) | wrap ke lebar N sebagai satu string | string tunggal dengan newline |
| textwrap.wrap(text, width=N) | split menjadi baris pada lebar N | list of string |
| textwrap.shorten(text, w) | jika hasilnya tidak muat lebar N, akhiri dengan [...] | string yang dipotong |
import textwrap
# dedent: hapus indent dari triple-quoted string
raw = """
Halo.
Cuaca hari ini bagus.
"""
print(textwrap.dedent(raw).strip())
# Halo.
# Cuaca hari ini bagus.
# fill: wrapping (Bahasa Inggris menampilkannya paling jelas)
long_text = "Python is a language that lets you work quickly and integrate systems."
print(textwrap.fill(long_text, width=30))
# Python is a language that
# lets you work quickly and
# integrate systems.
Kombinasikan dedent dengan strip
Triple-quoted string sering dimulai dan diakhiri dengan newline, jadi one-liner textwrap.dedent(raw).strip() (dedent + memotong whitespace di sekeliling) adalah pola umum. strip adalah method built-in string yang menghapus whitespace (termasuk newline) dari kedua ujung.
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Mana yang menghapus common leading indent dari teks yang ditulis dalam triple quote (dengan indentasi level source)?
Soal 3Apa yang dilakukan textwrap.fill(text, width=20)?