Python Formatted Strings(f-strings), .format() ve % ile Metin Biçimlendirme Nasıl Yapılır?


Python

Bu blog yazısına başlarken hedefim Python 3.6 ile birlikte gelen f-strings'i anlatmaktı, fakat uzun zamandır kullanılan % ve .format ile metin biçimlendirme özelliklerini birlikte örneklendirirsem daha iyi olacağını düşündüm.

# PEP Döküman Linkleri :

% Biçimlendirme yöntemi çok uzun zamandır kullanılıyor. Python 2.7 ile birlikte .format özelliği de okuma rahatlığı açısından sıkça kullanılmaya başlandı. Python 3.6 ile birlikte gelen f-strings ise performans ve okuma açısından çok daha iyi.

# Hemen kullanmaya başlayalım:

:::danger UNUTMA! f'{first_name}'(f-strings) Python 3.6 ve üzerinde çalışır. Birkaç yerde bu bilgiyi hatırlattım ama yinede buraya uyarı ekliyorum 😉 :::

first_name, last_name = "Hakan", "Yalçınkaya"

# % Kullanımı:
# Python 2
"%s %s" % (first_name, last_name)
>>> 'Hakan Yal\xc3\xa7\xc4\xb1nkaya'

# .format() Kullanımı:
# Python 2
"{} {}".format(first_name, last_name)
>>> 'Hakan Yal\xc3\xa7\xc4\xb1nkaya'

# f"" Kullanımı:
# Python 3.6
f"{first_name} {last_name}"
>>> 'Hakan Yalçınkaya'

# Yer Değiştirmek için:
# Python 2
"{1} {0}".format(first_name, last_name)
>>> 'Hakan Yal\xc3\xa7\xc4\xb1nkaya'

# Python 3.6
f"{last_name} {first_name}"
>>> 'Yalçınkaya Hakan'

# Sola, Sağa ve Ortaya Boşluk Bırakma

# Sağa boşluk bırakma:
"hey! %-10s is ready " % "python"
>>> 'hey! python     is ready '

"hey! {:10} is ready".format("python")
>>> 'hey! python     is ready'

f"hey! {'python':10} is ready"
>>> 'hey! python     is ready'

# Sola Boşluk bırakma
"hey! %10s is ready " % "python"
>>> 'hey!     python is ready '

"hey! {:>10} is ready".format("python")
>>> 'hey!     python is ready'

f"hey! {'python':>10} is ready"
>>> 'hey!     python is ready'

# Ortaya Boşluk Eklemek
"hey! {:^10} is ready".format("python")
>>> 'hey!   python   is ready'

f"hey! {'python':^10} is ready"
>>> 'hey!   python   is ready'

# Boşluk Yerine Karakter Ekleme

Bir kodu incelerken 4 haneli rakamlar oluşturmak için if kullandığını gördüm, eğer 10'dan küçükse başına ÜÇ SIFIR(000) ekle demiş. Örnek: 0005. Bu işlemi if kullanmak yerine metin biçimlendirme ile yapabiliriz.

"{:04}".format(5)
>>> '0005'

f"{5:04}"
>>> '0005'

pk = 99

"{:04}".format(pk)
>>> '0099'

f"{pk:04}"
>>> '0099'


# ====================
# _ karakteri eklemek
# ====================
"{:_>8}".format(pk)
>>> '______99'

"{:_<8}".format(pk)
>>> '99______'

f"{pk:_>8}"
>>> '______99'

f"{pk:_<8}"
>>> '99______'

::: warning Az Kaldı 😃 Şimdilik bu kadar yazdım, yine metin biçimlendirme ile ilgili örnekler eklemeye devam edeceğim. Sonuna bir cheatsheet dökümanı hazırlamaya başladım. Yazının devamını beklemeden f-strings kullanmaya hemen başla 😉 soruların olursa buralardayım 😃 :::

# Cheat Sheet

İşlem % .format f-strings çıktı
Başa Karakter Eklemek name="python" - "{:_>8}".format(name) f"{name:_>8}" '__python'
Last Updated: 2/10/2019, 4:03:04 AM