Format string dalam Python

Selesai

Selain mengubah teks dan melakukan operasi dasar, seperti pencocokan dan pencarian, penting untuk memformat teks saat Anda menyajikan informasi. Cara paling sederhana untuk menyajikan informasi teks dengan Python adalah dengan menggunakan print() fungsi. Anda akan merasa penting untuk mendapatkan informasi dalam variabel dan struktur data lainnya ke dalam string yang print() dapat digunakan.

Dalam unit ini, Anda akan mempelajari beberapa cara yang valid untuk menyertakan nilai variabel dalam teks dengan menggunakan Python.

Pemformatan tanda persen (%)

Tempat penampung untuk variabel dalam string adalah %s. Setelah string, gunakan karakter lain % diikuti dengan nama variabel. Contoh berikut menunjukkan cara memformat dengan menggunakan % karakter:

mass_percentage = "1/6"
print("On the Moon, you would weigh about %s of your weight on Earth." % mass_percentage)

Output: On the Moon, you would weigh about 1/6 of your weight on Earth.

Menggunakan beberapa nilai mengubah sintaks, karena memerlukan tanda kurung untuk mengelilingi variabel yang diteruskan dalam:

print("""Both sides of the %s get the same amount of sunlight, but only one side is seen from %s because the %s rotates around its own axis when it orbits %s.""" % ("Moon", "Earth", "Moon", "Earth"))

Output: Both sides of the Moon get the same amount of sunlight, but only one side is seen from Earth because the Moon rotates around its own axis when it orbits Earth.

Tip

Meskipun metode ini masih merupakan cara yang valid untuk memformat string, metode ini dapat menyebabkan kesalahan dan penurunan kejelasan dalam kode saat Anda berhadapan dengan beberapa variabel. Salah satu dari dua opsi pemformatan lain yang dijelaskan dalam unit ini akan lebih cocok untuk tujuan ini.

Metode format()

Metode ini .format() menggunakan kurung kurawal ({}) sebagai tempat penampung dalam string, dan menggunakan penetapan variabel untuk mengganti teks.

mass_percentage = "1/6"
print("On the Moon, you would weigh about {} of your weight on Earth.".format(mass_percentage))

Output: On the Moon, you would weigh about 1/6 of your weight on Earth.

Anda tidak perlu menetapkan variabel berulang beberapa kali, membuatnya kurang verbose karena lebih sedikit variabel yang perlu ditetapkan:

mass_percentage = "1/6"
print("""You are lighter on the {0}, because on the {0} you would weigh about {1} of your weight on Earth.""".format("Moon", mass_percentage))

Output: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.

Alih-alih kurung kurawal kosong, penggantiannya adalah menggunakan angka. Cara {0} untuk menggunakan argumen pertama (indeks nol) ke .format(), yang dalam hal ini adalah Moon. Untuk pengulangan {0} sederhana bekerja dengan baik, tetapi mengurangi keterbacaan. Untuk meningkatkan keterbacaan, gunakan argumen kata kunci di .format() lalu referensikan argumen yang sama dalam kurung kurawal:

mass_percentage = "1/6"
print("""You are lighter on the {moon}, because on the {moon} you would weigh about {mass} of your weight on Earth.""".format(moon="Moon", mass=mass_percentage))

Output: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.

Tentang f-string

Pada Python versi 3.6, dimungkinkan untuk menggunakan f-string. String ini terlihat seperti templat dan menggunakan nama variabel dari kode Anda. Menggunakan f-string dalam contoh sebelumnya akan terlihat seperti ini:

print(f"On the Moon, you would weigh about {mass_percentage} of your weight on Earth.")

Output: On the Moon, you would weigh about 1/6 of your weight on Earth.

Variabel masuk dalam kurung kurawal, dan string harus menggunakan awalan f.

Selain f-string yang kurang verbose daripada opsi pemformatan lainnya, dimungkinkan untuk menggunakan ekspresi dalam kurung kurawal. Ekspresi ini dapat berupa fungsi atau operasi langsung. Misalnya, jika Anda ingin mewakili 1/6 nilai sebagai persentase dengan satu tempat desimal, Anda dapat menggunakan round() fungsi secara langsung:

print(round(100/6, 1))

Output: 16.7

Dengan f-string, Anda tidak perlu menetapkan nilai ke variabel sebelumnya:

print(f"On the Moon, you would weigh about {round(100/6, 1)}% of your weight on Earth.")

Output: On the Moon, you would weigh about 16.7% of your weight on Earth.

Menggunakan ekspresi tidak memerlukan panggilan fungsi. Salah satu metode string juga valid. Misalnya, string dapat memberlakukan casing tertentu untuk membuat judul:

subject = "interesting facts about the moon"
heading = f"{subject.title()}"
print(heading)

Output: Interesting Facts About The Moon