Если у вас есть два последовательных символа, которые не являются буквами (например, запятая, за которой следует пробел), тогда вы нажмете elif word[0].lower() > "g"
, когда word
- пустая строка, поэтому в * 1003 не будет символа. *. Вот что вызывает исключение.
Проще говоря, вы можете избежать этого, проверив, что word
не пусто, прежде чем пытаться получить word[0]
.
elif word and word[0].lower() > "g":
Это, по крайней мере, должно избежать исключения.
Но у меня все еще есть проблема с последним словом, последнее слово не печатается, хотя оно начиналось с алфавита больше, чем "G"
Вы печатаете, только когда нажимаете не алфавитный символ. Поэтому, если вы передадите слово, а затем не наберете не алфавитный символ, последнее слово не будет напечатано.
Чтобы решить эту проблему, вы можете добавить print
после окончания вашего цикла, в случае, если еще осталось напечатать последнее слово.
for a in q:
... etc.
if word and word[0].lower() > 'g':
print(word)