Files
semih 494781e84f 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ı.
2026-10-17 22:07:47 +03:00

4.1 KiB

baslik, bolum, ozet
baslik bolum ozet
Sözlükler Veri yapıları Anahtar-değer çiftleri, ekleme, sorgulama, gezme ve sayım

Listede bir öğeye sıra numarasıyla ulaşırsın. Ama "Ankara'nın plakası kaç?" sorusunda sıra numarası işe yaramaz. Sözlük, her değeri bir anahtarla eşleştirir: plaka["Ankara"] gibi.

Sözlük oluşturmak

Süslü parantez içine anahtar: değer çiftlerini virgülle ayırarak yazarsın.

plaka = {"İstanbul": 34, "Ankara": 6, "İzmir": 35}
yazdir(plaka["Ankara"])
yazdir(plaka.uzunluk())
6
3

Ekleme ve güncelleme

Olmayan bir anahtara değer atamak yeni çift ekler; var olan bir anahtara atamak değeri değiştirir.

stok = {"elma": 40, "armut": 25}
stok["kiraz"] = 12
stok["elma"] = stok["elma"] - 5
yazdir(stok["elma"])
yazdir(stok["kiraz"])
35
12

Anahtar var mı?

Sözlükte olmayan bir anahtarı okumak programı hatayla durdurur. Emin değilsen önce var_mi() ile sor.

plaka = {"İstanbul": 34, "Ankara": 6}
dongu sehir icinde ["Ankara", "Konya"]:
    eger plaka.var_mi(sehir):
        yazdir(f"{sehir}: {plaka[sehir]}")
    degilse:
        yazdir(f"{sehir}: kayıtlı değil")
Ankara: 6
Konya: kayıtlı değil

Silmek

Sözlükte sil() anahtara göre siler (listede konuma göre silerdi).

stok = {"elma": 40, "armut": 25, "kiraz": 12}
stok.sil("armut")
yazdir(stok.uzunluk())
yazdir(stok.var_mi("armut"))
2
yanlış

Sözlükte gezmek

anahtarlar() bütün anahtarları bir liste olarak verir. Her anahtar için değeri sozluk[anahtar] ile okursun.

fiyat = {"ekmek": 12.5, "süt": 34.9, "peynir": 149.0}
anahtarlar = fiyat.anahtarlar()
anahtarlar.sirala()
dongu urun icinde anahtarlar:
    yazdir(f"{urun:<8}{fiyat[urun]:>8.2f} TL")
ekmek      12.50 TL
peynir    149.00 TL
süt        34.90 TL

Dikkat: anahtarlar() listesi ekleme sırasında gelmez. Belli bir sırada gezmek istiyorsan yukarıdaki gibi önce sirala() ile sırala.

Sayım: en sık kullanılan sözlük işi

Bir metinde hangi kelimenin kaç kez geçtiğini sayalım. Her kelime için: daha önce gördüysek sayısını artırırız, görmediysek 1 ile başlatırız.

cumle = "bir elma bir armut iki elma bir kiraz"
sayim = {}
dongu kelime icinde cumle.bol(" "):
    eger sayim.var_mi(kelime):
        sayim[kelime] = sayim[kelime] + 1
    degilse:
        sayim[kelime] = 1
kelimeler = sayim.anahtarlar()
kelimeler.sirala()
dongu k icinde kelimeler:
    yazdir(f"{k}: {sayim[k]}")
armut: 1
bir: 3
elma: 2
iki: 1
kiraz: 1

Değerleri toplamak

Bir sözlükteki sayıların toplamını anahtarlar üzerinden dönerek bulursun.

notlar = {"Ayşe": 88, "Mehmet": 64, "Elif": 92}
toplam = 0
dongu ad icinde notlar.anahtarlar():
    toplam += notlar[ad]
yazdir(f"Ortalama: {toplam / notlar.uzunluk():.1f}")
Ortalama: 81.3

İpucu: Bir sözlüğün bütün değerleri aynı türde olsun: hepsi sayı ya da hepsi metin. Öğrencinin adını, notunu ve şehrini birlikte tutmak istiyorsan Yapılar dersindeki yapi daha uygun bir araçtır.

Alıştırma

`telefon` sözlüğüne `"Can": "0532 111 22 33"` kaydını ekle. Sonra `"Can"` ve `"Deniz"` için ya numarayı ya da `Deniz: bulunamadı` yazdır.
%%%
telefon = {"Ayşe": "0555 123 45 67"}
# buraya yaz
%%%
telefon = {"Ayşe": "0555 123 45 67"}
telefon["Can"] = "0532 111 22 33"
dongu ad icinde ["Can", "Deniz"]:
    eger telefon.var_mi(ad):
        yazdir(f"{ad}: {telefon[ad]}")
    degilse:
        yazdir(f"{ad}: bulunamadı")
%%%
Can: 0532 111 22 33
Deniz: bulunamadı
`metin_` içindeki her harfin kaç kez geçtiğini say (boşlukları atla). Harfleri sıralayıp `a 3` biçiminde, her biri ayrı satırda yazdır.
%%%
metin_ = "kar kara"
sayim = {}
# buraya yaz
%%%
metin_ = "kar kara"
sayim = {}
dongu h icinde metin_:
    eger h == " ":
        devam
    eger sayim.var_mi(h):
        sayim[h] = sayim[h] + 1
    degilse:
        sayim[h] = 1
harfler = sayim.anahtarlar()
harfler.sirala()
dongu h icinde harfler:
    yazdir(f"{h} {sayim[h]}")
%%%
a 3
k 2
r 2