152 lines
3.1 KiB
Markdown
152 lines
3.1 KiB
Markdown
---
|
|||
|
|
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
|
||
|
|
```
|