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циклыlistsetdict
Poziom
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 раз(а)
Przykład deterministycznego wykonania

Potok przetwarzania danych

Tekst źródłowy'Python python code'Normalizacja.lower()split()['python','python','code']set(...){'python','code'}
Tekst → normalizacja → lista słów → zbiór unikalnych słów
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
wordstara wartośćnowa wartość
python0 (get zwrócił 0)1
is01
great01
and01
python12
is12

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
Otwórz praktykę →
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
Otwórz praktykę →