Məsələ həlli: söz sayğacı
Real məsələni mərhələlərlə proqrama çevir.
Bütün dərslər · Python dərsləri: sıfırdan öyrən
Məsələni necə həll etməli
Kod yazmazdan əvvəl məsələni sadə cümlələrlə izah et. Sonra kiçik addımlara böl, hər addımı ayrıca yoxla. Bu üsul böyük proqramları idarə olunan hala gətirir.
- Nə verilir, nə istənir? Nümunə girişi və gözlənən çıxışı yaz.
- Əl ilə həll et və addımları qeyd et.
- Addımları funksiyalara çevir.
- Kiçik nümunələrlə sına, sonra kənar halları yoxla.
Nümunə: söz sayğacı
Tapşırıq: mətndə hər sözün neçə dəfə keçdiyini say. Plan: mətni kiçik hərfə çevir, durğu işarələrini təmizlə, sözlərə böl, dict-də say, ən çox keçənləri göstər.
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)]Gördüyün kimi hər funksiya bir iş görür və ayrıca sınana bilir. Sonra proqramı genişləndirmək asandır: fayldan oxumaq, nəticəni saxlamaq, ən qısa sözləri atmaq.
Səhvləri tapmaq
Proqram gözləniləndən fərqli işləyirsə, aralıq qiymətləri print() ilə göstər və harada gözləntinin pozulduğunu tap. Kiçik assert yoxlamaları funksiyanı dəyişəndə səni qoruyur.
assert count_words("a a b") == {"a": 2, "b": 1}
assert top({"x": 1, "y": 5}, 1) == [("y", 5)]
print("all checks passed")