Поиск индекса слова в строке

у меня к вам вопрос, у меня задание найти позицию проверочного слова "кот". Длина строки - 50 символов, когда я разбивал строку при помощи split, кот стоит на 6 позиции. Я не понимаю как можно найти слово "кот", т.к. перед ним слово "который". Я ввожу искомое слово, но данный код работает только для слова "кот". Вопрос как его найти, в результате индекс должен быть равен 23. Благодарю Вас.

x = "У нас который год есть кот которого Васькой зовут."
y = input()
print("Слово началось с " + str(len(x) - x.rindex(y)) + " позиции" if y in x else "Слово не найдено")введите сюда код сюда код

Ответы (2 шт):

Автор решения: passant
x = "У нас который год есть кот которого Васькой зовут."
print(x.find(' кот ')+1)
print(x.index(' кот ')+1)

Результат:

23
23

Рекомендация: Перед тем, как задавать вопрос, откройте любой учебник по Python. Раздел со строками (ну, или с той темой, по которой вы вопрос задать хотите).

→ Ссылка
Автор решения: CrazyElf

Используйте лучше регулярные выражения:

import re

x = "У нас который год есть кот которого Васькой зовут."
y = input()
rx = re.compile(fr'\b{y}\b')
found = False
for z in rx.finditer(x):
    print(f"Слово началось с {z.span()[0]} позиции")
    found = True
if not found:
    print("Слово не найдено")

Шаблон \b означает границу слова. Так гораздо проще искать слова внутри предложения. Иначе придётся вручную проверять чем ограничено слово, оно может быть окружено не только пробелами, а ещё и знаками препинания и/или началом/концом строки. И все эти случаи придётся предусмотреть.

→ Ссылка