Текст как последовательность
Строка Python — неизменяемая последовательность Unicode-символов. Можно читать символ по индексу, но нельзя присвоить новое значениеtext[0]. Методы возвращают новую строку: результат strip, lower или replace нужно сохранить, если он понадобится далее.
Индекс -1 означает последний символ. У пустой строки его нет. Срез text[start:stop:step] не включает stop и корректно ограничивается длиной. text[::-1] создаёт перевёрнутую строку. Срез сам по себе не изменяет исходник.
Нормализация по контракту
Если задача игнорирует регистр и пробелы, сначала нормализуйте строку, затем сравнивайте. Для простого учебного ASCII-ввода достаточно lower и проверки символов. Для общего текстаcasefold лучше подходит для сравнения без регистра, но нормализация Unicode — отдельная задача: визуально одинаковые символы могут иметь разные представления. Не удаляйте знаки и пробелы, если условие требует точное сравнение.
split() без аргумента группирует пробельные разделители; split(',') делит по конкретной запятой и может дать пустые части. Для CSV с кавычками и запятыми внутри полей нужен модуль csv, а не ручной split. " ".join(parts) собирает строки с разделителем. Он требует строковые элементы.