Commit 19e067d2 by Patryk Czarnik

liczenie słów za pomocą re - v2

parent 4af6312d
# W tej wersji do podziału każdej linii na słowa wykorzystamy wyrażenia regularne.
# Teoretycznie można by wczytać całuy plik za pomocą read() i dopiero podzielić na słowa,
# ale zwn wydajność prefereujemy przetwarzanie linia za linią, stąd dwupoziomowa pętla.
# Również zwn na wydajność lepiej jest najpierw "skompilować" wyrażenie regularne, a później używać wersji skompilowanje, tzw. "patternu".
# Dotyczy to sytuacji, gdy to samo wyrażneie jest używane wielokrotnie, np. w pętli.
import re
# znaczenie wzorca: nieputy ciąg znaków typu 'w', co obejmuje litery (wszelkich alfabetów), cyfry i znak _
pattern = re.compile(r'\w+')
nr = 0
with open('pan_tadeusz.txt', mode='r', encoding='utf-8') as plik:
for linia in plik:
for slowo in re.findall(pattern, linia): # albo: for slowo in pattern.findall(linia):
nr += 1
print(slowo)
print('Liczba wszystkich słów:', nr)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment