Вы получите эту ошибку, когда word
- пустая строка.
Это произойдет, если у вас есть два неалфавитных символа подряд. После проверки первой буквы вы назначаете word = ""
. Затем, когда вы обрабатываете следующий символ, word
все еще пуст, поэтому нет word[0]
.
Если первая буква по крайней мере "h" `, то и слово целиком, поэтому его не нужно индексировать. Просто напишите:
if word.lower() >= "h":
Или вы можете проверить, есть ли что-то в word
сначала:
if word and word[0].lower() >= "h":
Нет необходимости писать "h".lower()
. Это уже строчные.
Поскольку вам нужно переинициализировать word
независимо от того, начинается ли он с буквы в диапазоне или нет, уберите это назначение
Таким образом, исправленный код должен быть:
for letter in sentence:
if letter.isalpha():
word += letter
else:
if word and word[0].lower() >= "h":
print(word.upper())
word = ""