Menu

Python f-String'ler: Biçimlendirme, İfadeler ve Sayı Belirteçleri

Python f-string'leri için pratik bir rehber — değişken ve ifade gömme, sayı ve tarih biçimlendirme ve eski biçim stillerine ne zaman başvuracağın.

Gerçekte Kullanacağın Biçim

f-string'ler modern Python kodunun metne değer gömmesinin varsayılan yoludur. Açılış tırnağının önüne bir f koy ve {...} içindeki her şey canlı bir ifadeye dönüşür:

main.py
Output
Click Run to see the output here.

Dikkat edilecek üç şey. f öneki tüm literal'ı bir şablona çevirir. Parantezler değiştirme noktalarıdır. Ve parantez içindeki ifade, string yazıldığında değil, print çalıştığı anda değerlendirilir.

f-string'leri diğer herhangi bir biçimlendirme stilinden çok daha sık yazacaksın. "Hello, " + name + "."'dan daha kısa, "Hello, %s." % name'den daha nettir ve .format()'tan daha esnektir.

Değerlendirilebilen Her Şey İçeri Girebilir

Parantezler değişken isimleriyle sınırlı değildir. Her Python ifadesi geçerlidir:

main.py
Output
Click Run to see the output here.

Metot çağrıları, indeksleme, aritmetik, koşullu ifadeler — hepsi iyi. Tek kural: parantez içinde olanları kısa tut. Bir yer tutucunun içine üç satırlık bir hesaplama yazıyorsan, önce onu isimlendirilmiş bir değişkene hesapla ve ismi bırak.

Sayıları Biçimlendirme

İfadeden sonra iki nokta bir biçim spec'i açar — değerin nasıl görüntüleneceğini kontrol etmek için bir mini dil:

main.py
Output
Click Run to see the output here.

Her parçanın ne yaptığına hızlı bir rehber:

  • .2f — float, noktadan sonra iki basamak. Görüntülemek için yuvarlar.
  • , — binlik ayıracı olarak virgül. Hem int hem float için çalışır.
  • .1% — 100 ile çarpar ve % ekler. Oranlar için harika.
  • .2e — iki ondalık basamaklı bilimsel gösterim.

Bunları birleştirebilirsin. f"{total:,.2f}" sana "1,234.57" verir.

Doldurma, Genişlik ve Hizalama

Çıktı sütunlarını hizalamak için:

main.py
Output
Click Run to see the output here.

<10 "başa hizalı, en az 10 karakter olacak şekilde doldurulmuş" anlamına gelir. >5 "sona hizalı, 5 karakter olacak şekilde doldurulmuş" anlamına gelir. Ortalama için ^ de kullanabilirsin.

Boşluktan başka bir şeyle doldurmak için, doldurma karakterini hizalama bayrağından önce koy:

main.py
Output
Click Run to see the output here.

Tarihleri Biçimlendirme

Aynı {value:spec} söz dizimi datetime nesneleri için de çalışır:

main.py
Output
Click Run to see the output here.

İki noktadan sonraki spec bir strftime biçim string'idir. strftime için geçerli olan her % kodu burada çalışır — bunları datetime sayfasında ayrıntıyla ele alacağız.

Hata Ayıklama İçin = Numarası

En kullanışlı niş özelliklerden biri: ifadeden sonra = koy ve Python hem ifadenin kaynağını hem de değerini yazar:

main.py
Output
Click Run to see the output here.

count=7, price=19.99, count * price=139.93 çıktısı alırsın. Üç karakterde tam bir print("count =", count). Bir sonraki hata ayıklama anında birkaç değeri dökmek istediğinde hatırlamaya değer.

Parantezleri Kaçırma

Çıktıda birebir { ya da } gerekiyorsa bunları çiftle:

main.py
Output
Click Run to see the output here.

Tek parantezler bir ifade açar; {{ ve }} çıktıda { ve } yerine geçer.

Çok Satırlı f-String'ler

f-string'ler üçlü tırnaklarla iyi anlaşır, bu da satır içi küçük şablonlar kurarken yardımcı olur:

main.py
Output
Click Run to see the output here.

Uzun bir f-string'i bitişik birkaç string literal'a da bölebilirsin — Python onları otomatik olarak birleştirir:

main.py
Output
Click Run to see the output here.

Eski Stillerin Hâlâ Ortaya Çıktığı Yerler

Mevcut kodda iki eski biçimlendirme stiliyle karşılaşırsın:

main.py
Output
Click Run to see the output here.

Üçü de aynı çıktıyı üretir. On durumun dokuzunda f-string'ler okunurlukta kazanır. Bir şablonu bir kere kurup defalarca uygulaman gerektiğinde .format()'a başvur; %'yi yalnızca onu zaten kullanan eski kodu bakımlarken kullan.

Ne İçin İyi Değildir

İki durumda farklı bir araç gerekir.

SQL sorguları oluşturmak. Kullanıcı girdisini asla bir f-string'le bir SQL string'ine enterpolasyon yapma. Veritabanı kütüphanenin parametreli sorgularını kullan. Oradaki bir f-string, SQL enjeksiyonunun gerçekleştiği yerdir.

Çevrilmiş UI metinleri oluşturmak. Uygulaman birden fazla dili destekliyorsa, dış çeviri araçlarının toplayabileceği bir şablon istersin — genelde gettext'in _(...)'ı ya da çerçeveye özel bir yardımcı. Bir f-string yapıyı kaynak koda gömer, bu da çeviriyi çok daha zorlaştırır.

Diğer her şey için — log'lar, konsol çıktısı, URL oluşturma, yapılandırma string'leri, görüntüleme için sayı biçimlendirme — f-string'ler doğru cevaptır.

Sırada: Sayılar ve Boolean'lar

f-string'ler sayı biçimlendirmede çok yol alır, bu yüzden sayısal tipleri biraz daha derinlemesine bilmeye değer. O geliyor.

Sıkça Sorulan Sorular

Python'da f-string nedir?

f-string, başına f konulmuş bir string literal'dır; {...} içindeki her şey çalışma zamanında ifadenin değeriyle değiştirilir. f"Hello, {name}" name değişkeninin mevcut değerini string'e yerleştirir.

f-string'ler Python'a ne zaman eklendi?

Python 3.6. Modern her Python sürümü onları destekliyor, dolayısıyla bugün Python 3 kodu yazdığın her yerde f-string kullanabilirsin. Eski biçimlendirme stilleri (% ve .format()) hâlâ çalışıyor ama çoğu durumda daha az temiz okunuyor.

Python'da bir sayıyı 2 ondalık basamağa nasıl biçimlendiririm?

Parantezlerin içinde iki noktadan sonra bir biçim spec'i kullan: f"{price:.2f}". .2f 'ondalık noktadan sonra iki basamaklı float' anlamına gelir. Görüntülenen değeri yuvarlar; orijinal sayı değişmez.

Bir f-string içine herhangi bir ifade koyabilir miyim?

Evet — aritmetik, metot çağrıları, fonksiyon çağrıları, koşullu ifadeler. f"{name.upper()}" ve f"{price * 1.2:.2f}" ikisi de çalışır. İfadeleri kısa tut; parantezin içindeki kod karmaşıklaşıyorsa önce onu bir değişkene hesapla.

Coddy ile kodlamayı öğren

BAŞLA