Files

152 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

---
baslik: Biçimlendirme
bolum: Temeller
ozet: f-string ile değerleri metne yerleştirmek, basamak ve hizalama
---
Metinle sayıları `+` ve `metin()` ile birleştirmek çabuk karışır. Biçimli metin (f-string) bunu çok kolaylaştırır: değişkenleri doğrudan metnin içine yazarsın.
## f-string
Metnin önüne `f` koy, değerleri süslü parantez `{}` içine yaz.
```kbl
ad = "Deniz"
yas = 14
yazdir(f"{ad} {yas} yaşında.")
```
```cikti
Deniz 14 yaşında.
```
Süslü parantezin içine hesap da yazabilirsin.
```kbl
adet = 3
fiyat = 12
yazdir(f"{adet} kalem toplam {adet * fiyat} TL.")
```
```cikti
3 kalem toplam 36 TL.
```
## Ondalık basamak sayısı
`{deger:.2f}` virgülden sonra 2 basamak yazar ve yuvarlar.
```kbl
pi = 3.14159
fiyat = 49.9
yazdir(f"{pi:.2f}")
yazdir(f"{fiyat:.2f} TL")
yazdir(f"{0.1 + 0.2:.2f}")
```
```cikti
3.14
49.90 TL
0.30
```
## Sıfırla doldurmak
`{deger:02}` sayıyı en az 2 basamağa tamamlar; eksik basamaklar sıfır olur. Saat ve tarih yazarken işe yarar.
```kbl
saat = 9
dakika = 5
yazdir(f"{saat:02}:{dakika:02}")
```
```cikti
09:05
```
## Binlik ayırıcı ve yüzde
```kbl
nufus = 85_372_377
oran = 0.256
yazdir(f"{nufus:,}")
yazdir(f"{oran:.1%}")
```
```cikti
85,372,377
25.6%
```
## Hizalama
`{deger:<10}` değeri 10 karakterlik alana sola, `{deger:>10}` sağa, `{deger:^10}` ortaya yaslar. Tablo yazmak için birebirdir.
```kbl
yazdir(f"[{'Rize':<8}]")
yazdir(f"[{'Rize':>8}]")
yazdir(f"[{'Rize':^8}]")
```
```cikti
[Rize ]
[ Rize]
[ Rize ]
```
Hizalama ile basamak sayısını birlikte de verebilirsin: `{fiyat:>8.2f}`.
```kbl
yazdir(f"{'Ürün':<10}{'Fiyat':>8}")
yazdir(f"{'Ekmek':<10}{12.5:>8.2f}")
yazdir(f"{'Peynir':<10}{149.0:>8.2f}")
```
```cikti
Ürün Fiyat
Ekmek 12.50
Peynir 149.00
```
> **Dikkat:** f-string içinde metin yazarken iç tırnağı dıştakinden farklı seç: `f"{'Ürün':<10}"` doğrudur. Süslü parantezin kendisini yazmak için ikiler: `f"{{ }}"` ekrana `{ }` basar.
## Özet tablo
| Yazım | Anlamı | Örnek | Sonuç |
|---|---|---|---|
| `{x:.2f}` | 2 ondalık basamak | `{3.14159:.2f}` | `3.14` |
| `{x:03}` | 3 basamağa sıfırla tamamla | `{7:03}` | `007` |
| `{x:,}` | binlik ayırıcı | `{1234567:,}` | `1,234,567` |
| `{x:.0%}` | yüzde | `{0.5:.0%}` | `50%` |
| `{x:<6}` | sola yasla | `[{'ab':<6}]` | `[ab ]` |
| `{x:>6}` | sağa yasla | `[{'ab':>6}]` | `[ ab]` |
| `{x:^6}` | ortala | `[{'ab':^6}]` | `[ ab ]` |
## Alıştırma
```alistirma
f-string kullanarak `Elif'in ortalaması: 84.67` satırını yazdır. Ortalamayı üç notun ortalaması olarak hesapla ve 2 basamakla yaz.
%%%
ad = "Elif"
not1 = 78
not2 = 91
not3 = 85
# buraya yaz
%%%
ad = "Elif"
not1 = 78
not2 = 91
not3 = 85
ortalama = (not1 + not2 + not3) / 3
yazdir(f"{ad}'in ortalaması: {ortalama:.2f}")
%%%
Elif'in ortalaması: 84.67
```
```alistirma
`toplam_dakika` değerini `SS:DD` biçiminde (iki basamaklı saat ve dakika) yazdır. 425 dakika `07:05` olmalı.
%%%
toplam_dakika = 425
# buraya yaz
%%%
toplam_dakika = 425
saat = toplam_dakika // 60
dakika = toplam_dakika % 60
yazdir(f"{saat:02}:{dakika:02}")
%%%
07:05
```