Menu

f-string di Python: format, ekspresi, dan format angka

Panduan praktis f-string Python: menyisipkan variabel dan ekspresi, memformat angka dan tanggal, dan kapan memakai gaya format yang lebih lama.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Format yang benar-benar akan kamu pakai

f-string adalah cara default kode Python modern menyisipkan nilai ke dalam teks. Taruh f di depan tanda kutip pembuka, dan apa pun di dalam {...} menjadi ekspresi yang dievaluasi:

Ada tiga hal yang perlu diperhatikan. Awalan f mengubah seluruh literal menjadi template. Kurung kurawal adalah titik penggantinya. Dan ekspresi di dalam kurung kurawal dievaluasi saat print berjalan, bukan saat string itu ditulis.

Kamu akan menulis f-string jauh lebih sering daripada gaya format lain. Lebih singkat daripada "Hello, " + name + ".", lebih jelas daripada "Hello, %s." % name, dan lebih fleksibel daripada .format().

Apa pun yang bisa dievaluasi boleh masuk

Kurung kurawal tidak terbatas pada nama variabel. Ekspresi Python apa pun boleh dipakai:

Pemanggilan method, indeks, aritmetika, ekspresi kondisional, semuanya boleh. Satu aturannya: buat isi kurung kurawal tetap singkat. Kalau kamu menulis perhitungan tiga baris di dalam placeholder, hitung dulu ke dalam variabel bernama lalu masukkan nama variabelnya.

Memformat angka

Titik dua setelah ekspresi membuka sebuah format spec, bahasa mini untuk mengatur cara nilai ditampilkan:

Panduan singkat fungsi tiap bagiannya:

  • .2f: float, dua digit setelah titik. Dibulatkan saat ditampilkan.
  • ,: koma sebagai pemisah ribuan. Bisa untuk int maupun float.
  • .1%: dikalikan 100 lalu ditambah %. Cocok untuk rasio dan tingkat persentase.
  • .2e: notasi ilmiah dengan dua digit desimal.

Kamu bisa menggabungkannya. f"{total:,.2f}" menghasilkan "1,234.57".

Padding, lebar, dan perataan

Untuk menyejajarkan kolom output:

<10 berarti "rata kiri, diberi padding sampai minimal 10 karakter." >5 berarti "rata kanan, diberi padding sampai 5." Kamu juga bisa memakai ^ untuk rata tengah.

Untuk mengisi padding dengan karakter selain spasi, taruh karakter pengisi itu sebelum penanda perataan:

Memformat tanggal

Sintaks {value:spec} yang sama juga bisa dipakai untuk objek datetime:

Spec setelah titik dua adalah string format strftime. Setiap kode % yang tersedia untuk strftime bisa dipakai di sini; kita akan membahasnya lengkap di halaman datetime.

Trik = untuk debugging

Salah satu fitur khusus yang paling berguna: taruh = setelah ekspresi, dan Python mencetak teks ekspresinya sekaligus nilainya:

Kamu mendapat count=7, price=19.99, count * price=139.93. Itu sama dengan print("count =", count) lengkap, hanya dengan tiga karakter. Layak diingat saat kamu sedang debugging dan ingin menampilkan beberapa nilai.

Escape kurung kurawal

Kalau kamu butuh { atau } apa adanya di output, tulis dua kali:

Kurung kurawal tunggal membuka ekspresi; {{ dan }} mewakili { dan } di output.

f-string beberapa baris

f-string cocok dipakai dengan tiga tanda kutip, yang membantu saat kamu membuat template kecil langsung di kode:

Kamu juga bisa memecah f-string yang panjang menjadi beberapa literal string yang berdampingan; Python menggabungkannya secara otomatis:

Saat gaya lama masih muncul

Kamu akan bertemu dua gaya format lama di kode yang sudah ada:

Ketiganya menghasilkan output yang sama. Dalam sembilan dari sepuluh kasus, f-string paling enak dibaca. Pakai .format() kalau kamu perlu membuat template sekali lalu menerapkannya berkali-kali; pakai % hanya saat merawat kode lama yang sudah memakainya.

Yang tidak cocok untuk f-string

Ada dua situasi yang butuh alat lain.

Menyusun query SQL. Jangan pernah menyisipkan input pengguna ke string SQL dengan f-string. Pakai parameterized query dari library database-mu. f-string di sana adalah jalan masuk SQL injection.

Menyusun teks UI yang diterjemahkan. Kalau aplikasimu mendukung beberapa bahasa, kamu butuh template yang bisa diambil alat penerjemahan dari luar, biasanya _(...) dari gettext atau helper khusus framework. f-string menanamkan strukturnya di kode sumber, sehingga penerjemahan jadi jauh lebih sulit.

Untuk hal lainnya, seperti log, output console, menyusun URL, membuat string konfigurasi, dan memformat angka untuk ditampilkan, f-string adalah jawaban yang tepat.

Berikutnya: angka dan boolean

f-string banyak dipakai untuk memformat angka, jadi ada baiknya kamu mengenal tipe numerik sedikit lebih dalam. Itu pembahasan berikutnya.

Pertanyaan yang sering diajukan

Apa itu f-string di Python?

f-string adalah literal string yang diawali f, dan apa pun di dalam {...} diganti saat program berjalan dengan nilai ekspresinya. f"Hello, {name}" memasukkan nilai name saat ini ke dalam string.

Sejak kapan f-string ada di Python?

Sejak Python 3.6. Semua versi Python modern mendukungnya, jadi kamu bisa memakai f-string di mana pun kamu menulis kode Python 3 saat ini. Gaya format yang lebih lama (% dan .format()) masih bisa dipakai, tapi di kebanyakan kasus kurang enak dibaca.

Bagaimana cara memformat angka menjadi 2 angka desimal di Python?

Pakai format spec setelah titik dua di dalam kurung kurawal: f"{price:.2f}". .2f berarti 'float dengan dua digit setelah titik desimal.' Yang dibulatkan hanya nilai yang ditampilkan; angka aslinya tidak berubah.

Bisakah aku menaruh ekspresi apa saja di dalam f-string?

Bisa: aritmetika, pemanggilan method, pemanggilan fungsi, ekspresi kondisional. f"{name.upper()}" dan f"{price * 1.2:.2f}" sama-sama bisa dipakai. Buat ekspresinya singkat; kalau kode di dalam kurung kurawal mulai rumit, hitung dulu ke dalam sebuah variabel.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai