Problem çözme: kelime sayacı
Gerçek bir problemi adım adım programa çevir.
Tüm dersler · Python dersleri: sıfırdan öğren
Bir problem nasıl çözülür
Kod yazmadan önce problemi sade cümlelerle anlat. Sonra küçük adımlara böl ve her adımı ayrı dene. Bu yöntem büyük programları yönetilebilir hale getirir.
- Ne veriliyor, ne isteniyor? Örnek girdi ve beklenen çıktıyı yaz.
- Elle çöz ve adımları not et.
- Adımları fonksiyonlara dönüştür.
- Küçük örneklerle dene, sonra uç durumları kontrol et.
Örnek: kelime sayacı
Görev: bir metinde her kelimenin kaç kez geçtiğini say. Plan: metni küçük harfe çevir, noktalamayı temizle, kelimelere böl, dict'te say, en sık geçenleri göster.
def clean(text):
keep = "abcdefghijklmnopqrstuvwxyz əöüğışç"
return "".join(ch for ch in text.lower() if ch in keep)
def count_words(text):
counts = {}
for word in clean(text).split():
counts[word] = counts.get(word, 0) + 1
return counts
def top(counts, n=3):
return sorted(counts.items(), key=lambda p: p[1], reverse=True)[:n]
sample = "The cat and the dog. The end!"
print(top(count_words(sample))) # [('the', 3), ('cat', 1), ('and', 1)]Her fonksiyon tek iş yapar ve ayrı denenebilir. Sonra programı genişletmek kolaydır: dosyadan okumak, sonucu kaydetmek, çok kısa kelimeleri atlamak.
Hataları bulmak
Program beklenmedik davranıyorsa ara değerleri print() ile göster ve gerçeğin beklentiden nerede ayrıldığını bul. Küçük assert denetimleri, fonksiyonu sonradan değiştirdiğinde seni korur.
assert count_words("a a b") == {"a": 2, "b": 1}
assert top({"x": 1, "y": 5}, 1) == [("y", 5)]
print("all checks passed")