Подсчёт количества слов

Здравствуйте. У меня программа по подсчёту количества слов в строке.
Как сделать, чтобы допустим слово Colym–Colym считалось за два слово, при этом Colym-Colym считалось за одно.

s = input()
words = 0
letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
word = False
g = 0
for i in range(0,len(s)):
    for j in range(0,52):
        if letters[j] == s[i]:
            if not word:
                words += 1
                word = True
        if s[i] == ' ' or s[i] == ',' or s[i] == '.' or s[i] == '!' or s[i] == '?' :
            word = False
            j = 52
print(words)

А в чем разница? Тире вместо дефиса что ли? Так обычно ж так не пишут и будут пробелы вокруг.

Но вообще видимо надо просто добавить этот символ сюда?

и вместо or проще так:

separators = [' ', ',']

...

if s[i] in separators:

Да, типа – это тире, а - это дефис. Я пробовал – добавлять, щас вот переделал
separators = [' ', ',', '.', '!', '?','--'], но не работает, он всё равно за один символ считает.

Так -- это два символа, а сравнение с одним символом.

В Юникоде есть символ для тире (на который например этот форум заменяет -- при выводе) – можно его использовать.

Или просто ввести нормально с пробелами.

Colym -- Colym Colym-Colym

s = input()
letters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
separators = [' ', ',', '.', '!', '?']
words_count = 0
in_word = False
for ch in s:
    if ch in letters:
        if not in_word:
            words_count += 1
            in_word = True
    if ch in separators:
        in_word = False
print(words_count)

https://onlinegdb.com/BJpbTuZvu