Поиск индекса слова в строке
у меня к вам вопрос, у меня задание найти позицию проверочного слова "кот". Длина строки - 50 символов, когда я разбивал строку при помощи split, кот стоит на 6 позиции. Я не понимаю как можно найти слово "кот", т.к. перед ним слово "который". Я ввожу искомое слово, но данный код работает только для слова "кот". Вопрос как его найти, в результате индекс должен быть равен 23. Благодарю Вас.
x = "У нас который год есть кот которого Васькой зовут."
y = input()
print("Слово началось с " + str(len(x) - x.rindex(y)) + " позиции" if y in x else "Слово не найдено")введите сюда код сюда код
Ответы (2 шт):
x = "У нас который год есть кот которого Васькой зовут."
print(x.find(' кот ')+1)
print(x.index(' кот ')+1)
Результат:
23
23
Рекомендация: Перед тем, как задавать вопрос, откройте любой учебник по Python. Раздел со строками (ну, или с той темой, по которой вы вопрос задать хотите).
Используйте лучше регулярные выражения:
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 означает границу слова. Так гораздо проще искать слова внутри предложения. Иначе придётся вручную проверять чем ограничено слово, оно может быть окружено не только пробелами, а ещё и знаками препинания и/или началом/концом строки. И все эти случаи придётся предусмотреть.