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,102 @@
|
||||
# Sözlükler: anahtar-değer çiftleri, ekleme, sorgulama, gezme ve kelime sayımı
|
||||
#
|
||||
# Sözlük, her değeri bir anahtarla eşleştiren kaptır. Listede öğeye sıra
|
||||
# numarasıyla ulaşırken sözlükte anahtarla ulaşırız: plaka["Ankara"] gibi.
|
||||
# Süslü parantezle yazılır: {anahtar: değer, anahtar: değer}.
|
||||
|
||||
# ── Oluşturma ve okuma ────────────────────────────────────────
|
||||
plaka = {"İstanbul": 34, "Ankara": 6, "İzmir": 35}
|
||||
yazdir(f"Sözlük : {plaka}")
|
||||
yazdir(f"Ankara'nın plakası : {plaka['Ankara']:02}")
|
||||
yazdir(f"Kaç şehir var : {plaka.uzunluk()}")
|
||||
yazdir()
|
||||
|
||||
# ── Ekleme ve güncelleme ──────────────────────────────────────
|
||||
# Olmayan bir anahtara değer atamak yeni çift ekler; var olana atamak değeri değiştirir.
|
||||
plaka["Bursa"] = 16
|
||||
plaka["Trabzon"] = 61
|
||||
plaka["İzmir"] = 35
|
||||
yazdir(f"Eklemeden sonra: {plaka}")
|
||||
|
||||
# ── Sorgulama ─────────────────────────────────────────────────
|
||||
# Sözlükte olmayan bir anahtarı okumak programı hatayla durdurur.
|
||||
# Emin değilsek önce var_mi() ile soruyoruz.
|
||||
dongu sehir icinde ["Trabzon", "Konya"]:
|
||||
eger plaka.var_mi(sehir):
|
||||
yazdir(f"{sehir}: {plaka[sehir]}")
|
||||
degilse:
|
||||
yazdir(f"{sehir}: sözlükte yok")
|
||||
|
||||
# ── Silme ─────────────────────────────────────────────────────
|
||||
# Sözlükte sil() ANAHTARA göre siler (listede konuma göre silerdi).
|
||||
plaka.sil("Bursa")
|
||||
yazdir(f"Bursa silindi, kalan {plaka.uzunluk()} şehir")
|
||||
yazdir()
|
||||
|
||||
# ── Gezme ─────────────────────────────────────────────────────
|
||||
# anahtarlar() bütün anahtarları bir liste olarak verir.
|
||||
# Bu liste eklenme sırasında değildir; harflerin bilgisayardaki kod sırasına
|
||||
# göre dizilir ve bu sırada İ, Ş, Ö gibi harfler Z'den sonra gelir (yukarıda
|
||||
# Trabzon, İstanbul'dan önce yazıldı). Türk alfabesine göre gezmek için
|
||||
# anahtar listesini alıp sirala() ile sıralıyoruz.
|
||||
sehirler = plaka.anahtarlar()
|
||||
sehirler.sirala()
|
||||
yazdir("Şehir Plaka")
|
||||
dongu sehir icinde sehirler:
|
||||
yazdir(f"{sehir:<12}{plaka[sehir]:>5}")
|
||||
yazdir()
|
||||
|
||||
# ── Metinden metne sözlük: küçük bir sözlük uygulaması ────────
|
||||
ingilizce = {
|
||||
"kitap": "book",
|
||||
"kalem": "pencil",
|
||||
"okul": "school",
|
||||
"öğretmen": "teacher"
|
||||
}
|
||||
cumle = ["öğretmen", "okul", "kitap", "defter"]
|
||||
ceviri = []
|
||||
dongu kelime icinde cumle:
|
||||
eger ingilizce.var_mi(kelime):
|
||||
ceviri.ekle(ingilizce[kelime])
|
||||
degilse:
|
||||
ceviri.ekle(f"?{kelime}?") # bilinmeyen kelimeyi işaretle
|
||||
yazdir(f"{cumle.birlestir(' ')} → {ceviri.birlestir(' ')}")
|
||||
yazdir()
|
||||
|
||||
# ── Sayım: hangi kelime kaç kez geçiyor? ──────────────────────
|
||||
# Sözlüğün en sık kullanıldığı iş budur. Her kelime için:
|
||||
# daha önce gördüysek sayısını bir artırırız, görmediysek 1 ile başlatırız.
|
||||
metin_parcasi = "bir elma bir armut iki elma bir kiraz üç elma iki armut"
|
||||
sayim = {}
|
||||
dongu kelime icinde metin_parcasi.bol(" "):
|
||||
eger sayim.var_mi(kelime):
|
||||
sayim[kelime] = sayim[kelime] + 1
|
||||
degilse:
|
||||
sayim[kelime] = 1
|
||||
|
||||
yazdir(f"Metin: \"{metin_parcasi}\"")
|
||||
yazdir(f"{sayim.uzunluk()} farklı kelime bulundu:")
|
||||
|
||||
# En sık geçen kelimeyi de aynı gezintide bulalım.
|
||||
# Eşitlik olursa ilk karşılaşılan kalır, çünkü yalnız daha BÜYÜK adet yerini alır.
|
||||
en_sik = ""
|
||||
en_cok = 0
|
||||
dongu kelime icinde sayim.anahtarlar():
|
||||
adet = sayim[kelime]
|
||||
# Her kelime için adedi kadar ▇ çizerek küçük bir çubuk grafik yapıyoruz.
|
||||
yazdir(f" {kelime:<7}{adet:>2} " + "▇".tekrarla(adet))
|
||||
eger adet > en_cok:
|
||||
en_cok = adet
|
||||
en_sik = kelime
|
||||
yazdir(f"En sık geçen: \"{en_sik}\" ({en_cok} kez)")
|
||||
yazdir()
|
||||
|
||||
# ── Not defteri: öğrenci → not ────────────────────────────────
|
||||
notlar = {"Ayşe": 88, "Mehmet": 64, "Elif": 92, "Can": 47, "Deniz": 75}
|
||||
toplam = 0
|
||||
gecen = 0
|
||||
dongu ogrenci icinde notlar.anahtarlar():
|
||||
toplam += notlar[ogrenci]
|
||||
eger notlar[ogrenci] >= 50:
|
||||
gecen += 1
|
||||
yazdir(f"Sınıf ortalaması {toplam / notlar.uzunluk():.1f}; {notlar.uzunluk()} öğrenciden {gecen} kişi geçti.")
|
||||
Reference in New Issue
Block a user