Фактическая ошибка в вашем коде уже была заявлена, я просто хочу добавить отзыв о стиле:
Вы выполняете следующие шаги:
- разделите ввод в слова
- найти слова, которые соответствуют вашему требованию (
len(word) > 5
) - изменить исходную строку для каждого из них
Это довольно нетрадиционно и немного не интуитивно (он также имеет плохую производительность, так как несколько раз манипулирует вашей исходной строкой). Вместо этого я рекомендую следующий алгоритм:
- разбить ввод на слова
- перевернуть слова, соответствующие вашему требованию внутри этого списка
- присоединиться к Перечислите в предложении снова, чтобы получить вашу строку
Пример реализации:
user_input = "Hello this is a test sentence"
processed_words = []
for word in user_input.split():
if len(word) >= 5:
word = word[::-1]
processed_words.append(word)
reversed_sentence = ' '.join(processed_words)
print(reversed_sentence)
Если принять эту идею немного дальше, используя выражение генератора , это может выглядеть так:
user_input = "Hello this is a test sentence"
reversed_sentence = ' '.join(
word[::-1] if len(word) >= 5 else word
for word in user_input.split())
print(reversed_sentence)