Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Modul String & Waktu
Modul String
Tujuan
Kompilasi data aplikasi dan kirimkan surat balasan dengan menggunakan modul string.
Sekarang karena material untuk pembangunan pertanian baru telah diperhitungkan, saatnya mengalihkan perhatian kita kepada personel baru untuk pertanian tersebut. Kita memiliki beberapa surat yang perlu dikirimkan untuk lamaran pekerjaan, yang secara alami memerlukan banyak penulisan. Namun, kita dapat menggunakan modul string untuk mengatasi hal ini dengan membuat template dan memformat teks agar lebih mudah menangani kumpulan teks.
Mengimpor modul string kali ini akan dilakukan dengan cara yang sedikit berbeda dibandingkan modul lainnya karena kita akan mengimpor kelas-kelas yang memperluas modul tersebut, dan akan dijalankan dengan cara berikut:
import string from string import Template from string import Formatter
Ini memberi kita akses ke modul itu sendiri serta akses ke kelas template dan fungsi pemformatan yang terdapat di dalamnya. Untuk keperluan kita, kita akan menggunakan fungsi dan kelas berikut:
string.capwords(): Fungsi ini mengubah setiap kata dalam string agar memiliki kapitalisasi yang tepat, yakni huruf pertama setiap kata dibuat kapital dan sisanya huruf kecil tidak peduli bagaimana string tersebut diformat.Template(): Ini adalah kelas string yang digunakan untuk membuat objek template. Kelas ini menggunakan fungsisubstitute()yang memungkinkan Anda menyusun sebuah string dan menandai lokasi menggunakan tanda$untuk menukar data. Hal ini memungkinkan Anda membuat string modular yang dapat digunakan sesuai kebutuhan.Formatter(): Ini adalah kelas string yang digunakan untuk memformat atau menyusun sebuah string. Cara kerjanya mirip dengan kelasTemplate()tetapi lebih kuat dan lebih baik untuk rangkaian string yang lebih besar. Kelas ini menggunakan fungsiformat()yang memungkinkan Anda menyusun sebuah string dan menyisipkan data string dengan{}.
Mulailah dengan berjalan ke tanda X yang terang dan menggunakan fungsi read() sambil menghadap lemari arsip, ini akan memungkinkan Anda mengakses folder-folder dengan nama berbagai pelamar. Folder-folder tersebut tersedia dalam tiga konstanta list yang bernama: folder_a , folder_b dan folder_c.
Berjalanlah ke tanda X yang gelap di atas karpet hijau dan menghadap meja. Buat tiga list yang dinamakan: names_a , names_b, dan names_c. Gunakan list comprehension dengan fungsi string.capwords() untuk memformat kapitalisasi yang benar pada nama-nama tersebut. Pasangkan list dengan konstanta yang menggunakan huruf yang sama dalam nama mereka, misalnya untuk names_a gunakan string.capwords() dengan folder_a, seperti ini: names_a = [string.capwords(x) for x in folder_a]. Gunakan formula yang sama untuk mengisi names_b dan names_c.
Buat sebuah list bernama all_names dan gabungkan ketiga list nama tersebut, seperti ini: all_names = names_a + names_b + names_c. Ini akan menggabungkan semua list menjadi satu list besar. Lanjutkan dengan menggunakan fungsi Python bernama join() untuk menggabungkan semua item list menjadi sebuah string. Anda juga dapat menentukan apa yang akan ditempatkan di antara setiap item list dengan menyatakannya dalam tanda kutip, seperti ini: all_names = ", ".join(all_templates). Gunakan fungsi write() yang telah ditulis sebelumnya dengan list all_names untuk mencatat semua nama dengan kapitalisasi yang benar.
Selanjutnya, berjalanlah ke tanda X yang berwarna emas dan menghadap meja, di sini kita akan menyiapkan template. Di sini kita akan memiliki dua objek template yang telah ditulis sebelumnya, yang bernama red_templates dan blue_templates:
red_template = Template( "Hello, $name , thank you for applying for this position.") blue_template = Template( "Esteemed , $name , your application has been approved.")
Masing-masing template ini memiliki pesan yang unik, namun keduanya memiliki satu kesamaan yaitu placeholder yang diberi label $name. Simbol $ digunakan untuk menandai placeholder yang dapat digantikan dengan string pilihan Anda, dalam hal ini, seperti yang ditunjukkan oleh judul, adalah nama. Jika tidak ada nilai yang ditukar, template akan tetap menggunakan placeholder tersebut dalam string itu sendiri. Untuk melengkapi ini, buat sebuah list bernama all_templates.
Buat sebuah loop for dengan empat siklus, dengan ini kita akan menggantikan nama-nama dalam ketiga list nama dengan template yang telah disertai nama. Misalnya, kita akan menerapkan red_template pada list names_a. Gunakan fungsi substitute() dari kelas Template() untuk menggantikan placeholder $name dalam template dengan nama-nama dari list.
for x in range(4): names_a[x] = red_template.substitute(name=names_a[x])
Lakukan hal yang sama untuk names_b dan names_c. Untuk names_b gunakan red_template juga dan untuk names_c gunakan blue_template.
Setelah semua list nama telah diisi dengan template baru, saatnya untuk meninjaunya. Buat sebuah list baru bernama all_templates dan gabungkan semua list nama tersebut, seperti ini: all_templates = names_a + names_b + names_c. Gunakan fungsi join() yang sama seperti sebelumnya untuk menggabungkan semua nama yang telah diberi template menjadi bentuk yang dapat dibaca, seperti ini: all_templates = "\n".join(all_templates). Gunakan fungsi write() yang telah ditulis sebelumnya dengan all_templates untuk mencatat semua header untuk nama-nama yang berbeda.
Selanjutnya, kita berjalan ke tanda X yang gelap di atas karpet merah dan menghadap meja. Di sini kita akan memformat dan menulis set pertama surat. Mulailah dengan membuat dua objek formatter bernama red_1 dan red_2 dengan notasi kelas, seperti ini: red_1 = Formatter() , red_2 = Formatter(). Untuk penyusunan surat, buat sebuah list bernama red_letters.
Sama seperti sebelumnya, kita akan membuat loop for dengan empat siklus, di mana kita akan memiliki dua set string yang telah ditulis sebelumnya yang akan diformat menggunakan fungsi format() dan akan menyisipkan variabel nama ke dalamnya. String-string yang telah diformat ini akan ditambahkan ke list red_letters, membentuk list surat yang komprehensif yang akan dikirim. Misalnya, objek format red_1 akan diformat dengan list names_a dan ditambahkan ke list red_letters.
for x in range(4): red_letters.append(red_1.format( "{} Orientation will begin next week, please report to the office..." , names_a[x]))
Lakukan hal yang sama dengan objek format red_2 menggunakan string yang telah ditulis dan tambahkan list names_b ke dalam loop. Setelah semuanya diatur, gunakan fungsi join() dengan red_letters untuk menggabungkan data ke dalam satu file, seperti ini: red_letters = "\n".join(red_letters). Gunakan fungsi write() dengan red_letters untuk mencatat semua surat yang telah diformat yang akan dikirim.
Terakhir, berjalanlah ke tanda X yang gelap di atas karpet biru dan menghadap meja. Di sini kita akan memformat dan menyusun set terakhir surat. Sama seperti sebelumnya, buat dua objek formatter bernama blue_1 dan blue_2 dengan notasi kelas, seperti ini: blue_1 = Formatter() , blue_2 = Formatter(). Buat sebuah list blue_letters untuk memformat dan menyusun semua surat.
Sekali lagi, buat loop for dengan empat siklus dan gunakan string yang telah ditulis sebelumnya untuk memformat list nama dan menambahkannya ke list blue_letters menggunakan fungsi format(). Dalam hal ini, pasangkan objek format blue_1 dengan list names_c dan objek format blue_2 dengan list names_b. Semua ini dilakukan dengan cara yang sama seperti pada karpet merah, tetapi dengan nilai yang berbeda, menunjukkan fleksibilitas penggunaan format dan template. Setelah selesai, gunakan fungsi write() dengan blue_letters untuk menyusun surat terakhir dan menyelesaikan level.