Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
А зачем писать велосипед? Замена символов на '' стоку с длинной 0 вам не поможет ибо. Привет.мир = Приветмир.
Привет, мир = Приветмир.
Используйте регулярные выражения, для точного поиска слов .
words = re.findall('\w+', text)
return list(Set(words))
Глава "Количество уникальных слов" сделало мне очень грустно. Будто бы нету в питоне такого типа как set. Или даже dict. Нет, мы лучше будем гонять разрастающийся список туда-сюда в цикле внутри цикла.
def counter():
with open(filename) as file:
text = file.read()
def counter(filename):
return (len(words), len(nonrep_words))
if __name__ == '__main__':
...
import re, argparse
from os import path
parser = argparse.ArgumentParser(description='Count words in text file.')
parser.add_argument('path', action='store', type=str, help='path to a text file')
args = parser.parse_args()
if path.exists(args.path) and path.isfile(args.path):
with open(args.path, 'r') as f:
text = f.read()
else:
exit(f'Path "{args.path}" does not exist or a directory.')
if not text:
exit('File is empty.')
words = [word.lower() for word in re.split(r'[^\w-]+', text) if word]
print('Words: ', len(words))
print('Unique words: ', len(set(words)))
Пишем простой счётчик уникальных слов на Python с GUI на Tkinter