CodeBlanks Logo Icon CodeBlanks

Birleştirme

Tüm katmanları birleştirerek çalışan bir uygulama yazarsın.

Birleştirme: sınıf ile çöz

Son derste öğrendiğin her şeyi bir Sayac sınıfında birleştireceksin. Bu sınıf kelime frekanslarını tutar:

class Sayac:
    def __init__(self):
        self.veri = {}
    def ekle(self, k):
        self.veri[k] = self.veri.get(k, 0) + 1

s = Sayac()
s.ekle("elma")
print(s.veri)

Başlangıç kodu önceki tüm çözümleri içerir. Sen Sayac sınıfını tanımlayıp kullanacaksın. Bu, kodu modüler hâle getirir.

Proje tamamlandı!

Uygulama Sayaç sınıfını tanımla ve kullan

class Sayac: tanımla. __init__'te self.veri = {} yaz. def ekle(self, k): yönteminde self.veri[k] = self.veri.get(k, 0) + 1 yaz. Sonra s = Sayac(), s.ekle("elma"), print(s.veri) yaz.

Başlangıç kodu

main.py
# Kelime işleme - kelime listesi
words = ["elma", "armut", "elma"]
print(len(words))
def say(words):
    return len(set(words))
print(say(words))
def uret(words):
    for w in words:
        yield w
for w in uret(words):
    print(w)
from io import StringIO
with StringIO("kiraz") as f:
    print(f.read())
# Sayac sınıfını tanımla ve kullan

Örnek çözüm

main.py
words = ["elma", "armut", "elma"]
print(len(words))
def say(words):
    return len(set(words))
print(say(words))
def uret(words):
    for w in words:
        yield w
for w in uret(words):
    print(w)
from io import StringIO
with StringIO("kiraz") as f:
    print(f.read())
class Sayac:
    def __init__(self):
        self.veri = {}
    def ekle(self, k):
        self.veri[k] = self.veri.get(k, 0) + 1

s = Sayac()
s.ekle("elma")
print(s.veri)

Beklenen çıktı

3
2
elma
armut
elma
kiraz
{'elma': 1}

Proje tamamlandı

Tebrikler! Beş derslik orta seviye finalını tamamladın. Şunları birleştirdin:

  • Liste ile veri saklama
  • fonksiyon ile benzersiz sayma
  • generator ile bellek dostu üretim
  • with ile güvenli dosya okuma
  • sınıf ile modüler kod

Bu beş katman, orta seviye Python'un özetidir. Sonraki seviyede async, FastAPI ve paketleme gelecek.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Proje birleştirme eşleştir

Kavram Anlamı
class Sayaç Sınıf
__init__ Kurucu
self.veri Sözlük
ekle Yöntem

2 ekle yöntemini tamamla

Soru
def ekle(self, k):
    self.veri[k] = self.veri.____(k, 0) + 1
Cevap
def ekle(self, k):
    self.veri[k] = self.veri.get(k, 0) + 1

Açıklama: get(k, 0) anahtar yoksa 0 döndürür.

3 s.ekle("elma") iki kez çağrılırsa s.veri["elma"] ne olur?

  • 2 Doğru cevap
  • 1
  • 0
  • Hata

Açıklama: Her ekle çağrısı sayıyı bir artırır; iki çağrı 2 verir.

Orta seviye bölümündeki tüm dersler