Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur
- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md. - temeller/: tek konulu 12 başlangıç programı. - web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE önizlemesi 8080 verir), yoksa eski sabit port. - README: öğrenme bölümü, Online IDE bağlantısı.
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
---
|
||||
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
|
||||
```
|
||||
Reference in New Issue
Block a user