Python’da ondalıklı sayılarla ilgilenirken (float) virgülden sonraki basamak sayısını belirlemek için f-string kullanabiliriz. f-string print‘e biçimleme kazandırmamızı sağlayacak. Örneğin, virgülden sonra 2 basamak yazdırmak istediğimizi düşünelim:
a = 10.1234
print(f"{a:.2f}")
Çıktı: 10.12
Ne yaptık?
Elimizdeki float değişkenini f-print kullanarak yazdırdık. Örnekleri biraz daha ilerletelim ve neler olduğunu kavramaya çalışalım. Aşağıdaki örneklerde virgülden sonraki basamak sayılarına dikkat edin:
a = 10.1234
print(f"{a:.1f}")
Çıktı: 10.1
a = 10.1234
print(f"{a:.3f}")
Çıktı: 10.123
a = 10.1234
print(f"{a:.4f}")
Çıktı: 10.1234
İlk örnekte float sayımız için virgülden sonra 1 basamak yazdırıyoruz. Sonraki örneklerde ise sırasıyla 3 ve 4 basamak. Bunu yaparken kısaca ondalık nokta işaretinden sonra kaç değer istediğimizi print içerisinde belirtiyoruz. Böylece;
- Ondalık sayılarda istediğimiz miktarda basamak yazdırabiliyoruz:
pi = 3.141592653589793238462643383279
print(f'Pi sayısının ilk noktadan sonraki 6 basamağı: {pi:.6f}.')
Pi sayısının ilk noktadan sonraki 6 basamağı: 3.141593.
- Sayıları yüzdeye dönüştürebiliyoruz:
grade = 29/45
print(f'Aldığım sonuç: {grade:.3%}.')
Aldığım sonuç: 64.444%.
- Sabit uzunluk yazdırabiliyoruz:
from random import randint
for i in range(5):
print(f'Param: {randint(0, 150):>3}$')
Param: 126$
Param: 7$
Param: 136$
Param: 15$
Param: 88$
- binlik ayıracı olarak virgül kullanabiliyoruz:
print(f'Param: {10000000000:,}$')
Param: 10,000,000,000$
Gelelim açıklama kısmına.
Python’da f-string nasıl kullanılır?
Sayılar söz konusu olduğunda, biçim belirleyicilerini kullanabiliriz:
f'{deger:{uzunluk}.{basamak}}'
deger
bir sayı belirten herhangi bir ifadeuzunluk
görüntülenecek toplam kullanılan karakter sayısını belirtir, ancak belirttiğinden daha fazla alana ihtiyaç duyarsa, ek alan kullanılır.basamak
virgülden sonra kullanılan karakter sayısını gösterir
# ekstra boş karakter eklediğine dikkat edin
In [1]: f'{1 + 3 * 1.5:10.3f}'
Out[1]: ' 5.500'
# uzunluktan fazla karakter gerektiğinde ek alan kullanılır
In [2]: f'{3000 + 3 ** (1 / 2):2.1f}'
Out[2]: '3001.7'
In [3]: f'{1.2345 + 4 ** (1 / 2):9.6f}'
Out[3]: ' 3.234500'
# uzunluk değeri atlanabilir
In [4]: f'{1.2345 + 3 * 2:.3f}'
Out[4]: '7.234'
# biçim değerlendiricisi kullanılmadığında Python'un hesapladığı kadar basamak kullanılır
In [5]: f'{1.2345 + 3 * 0.5}'
Out[5]: '2.7344999999999997'
Python’da f-string örnekleri
Python 3’te bir dizeyi başa sıfır ekleyerek doldurma
Bir sayımız olsun. Bu örnekte length değişkeni. Bu değişkene bir sayı atayalım ve bu sayıyı 3 karakter uzunluğunda göstermek isteyelim:
>>> length = 1
>>> print(f'length = {length:03}')
length = 001
39.544847000000000 39.54’e nasıl değiştirilir
Python kullanarak 39.54484700000000
sayısını 39.54
‘e dönüştürmek isteyelim.
Sayıları yuvarlamak için round() fonksiyonuna da bakabilirsiniz.
Kullanıcıya görüntülenecek bir dize üretmek için yuvarlamak istiyorsanız:
>>> print "%.2f" % (39.54484700000000)
39.54
veya Python’un yeni sürümlerinde
>>> print("{:.2f}".format(39.54484700000000))
39.54
veya f-strings ile
>>> print(f'{39.54484700000000:.2f}')
39.54