С поддержкой переводов строки, а не только пробелов, в качестве разделителя слов: from sys import stdin
from functools import reduce
from operator import or_
words = reduce(or_, (set(line.split()) for line in stdin))
print(len(words)) Вводите текст на произвольном количестве строк, в конце - Ctrl-D (Unix) или Ctrl-Z, Enter (Windows).
Пример входных данных: Мама мыла раму и смотрела панораму
отмыла-таки раму Выходные данные: 7 (слово "раму" учитывается только один раз)