Rozdział 12 · Wiele fascynujących mini-projektów!
Projekt: analizator tekstu i częstotliwość słów
Stringi, pętle, zbiory i słowniki — razem po raz pierwszy, w jednym programie, który mówi więcej o tekście, niż można zobaczyć na pierwszy rzut oka.
Zastosowanie
stringsциклыlistsetdictPoziom
integracja
Rezultat
raport tekstowy
Co tworzymy
Program, który otrzymuje zdanie i liczy wszystko ciekawe: ile znaków, słów, unikatowych słów i które słowo pojawia się najczęściej.
Введите текст: Python is great and python is fun
Символов: 33
Слов: 7
Уникальных слов: 5
Самое частое слово: 'python' — 2 раз(а)
Potok przetwarzania danych
Dlaczego set()
zbiory naturalnie eliminują powtarzalność (rozdział 11) – liczba unikalnych słów równa się po prostu
len(set(words)), bez żadnej ręcznej kontroli.Krok 1 – Podstawowe obliczenia
analizator_etap1.py
text = input(„Wprowadź tekst: ”)
words = text.split()
print(„Znaków:”, len(text))
print(„Słów:”, len(words))
Etap 2 — unikalne słowa
analizator_etap2.py
normalized = text.lower().split()
unikalnye = set(normalized)
print(„Unikalne słowa:”, len(unikalnye))
Bez . lower() 'Python' i 'python' to różne słowa
Struny są porównywane znak po znaku i na wielka litera (Rozdział 8) —
"Python" != "python". Jeśli zapomnieć .lower() zanim zaliczymy unikalne słowa, zostaną one zaliczone jako dwa różne słowa.Etap 3 – Częstotliwość słów
Ten sam algorytm, który był szczegółowo omawiany w rozdziale 11 (§11.24) — teraz jako część większego programu:
chastota_slov.py
counts = {}
for word in normalized:
counts[word] = counts.get(word, 0) + 1
| word | stara wartość | nowa wartość |
|---|---|---|
| python | 0 (get zwrócił 0) | 1 |
| is | 0 | 1 |
| great | 0 | 1 |
| and | 0 | 1 |
| python | 1 | 2 |
| is | 1 | 2 |
Znajdź najczęstsze słowo
samoe_chastoe.py
samoe_chastoe = max(counts, key=counts.get)
print(f"Najczęściej używane słowo: {samoe_chastoe!r} — {counts[samoe_chastoe]} raz(y)")
max() z key — nie tylko dla liczb
max(counts, key=counts.get) iteruje przez KLUCZE słownika (rozdział 11) i wybiera ten, dla którego counts.get(ключ) Maximum to kompaktowy sposób na znalezienie „najpopularniejszego”Ostateczny Kod
analizator_teksta.py
text = input(„Wprowadź tekst: ”)
normalized = text.lower().split()
unikalnye = set(normalized)
counts = {}
for word in normalized:
counts[word] = counts.get(word, 0) + 1
samoe_chastoe = max(counts, key=counts.get)
print(„Znaków:”, len(text))
print(„Słów:”, len(normalized))
print(„Unikalne słowa:”, len(unikalnye))
print(f"Najczęściej używane słowo: {samoe_chastoe!r} — {counts[samoe_chastoe]} raz(y)")
Debug Lab
Jeśli się liczy. len(unikalnye) z słów BEZ
.lower(), a częstotliwość słów jest już PO obniżeniu do niższej
Rejestruj się, te dwie liczby mogą nie być ze sobą bi. Dlaczego?
Używaj wszędzie tego samego znormalizowanego lista
Jeśli
unikalnye jest liczone z surowych słów, oraz counts — z normalized, wtedy "Python" i "python" będą się składać do unikalnye jako dwa różne słowa, a w counts — jak jedno. Zawsze licz od tej samej, już znormalizowanej listy.Praktyka: Analizator tekstu – symbole, słowa, unikalne słowa
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Praktyka: częstość słów i najczęściej występujące słowo
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji