Неподдерживаемый тип операнда + дополнительные проблемы (скорее всего) - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь создать программу сжатия текста с потерями, но она выдает ошибку в строке 7 для unsupported operand type(s) for -: 'str' and 'int'. Я пытаюсь удалить все гласные из текста, кроме тех, которые являются первой буквой слова.

text = str(input('Message: '))
text = (' ' + text)
listtext = list(text)

for i in listtext[1:]: #trying to start for loop at index 1, i.e. skipping 
the first index, does this work?
  if i == 'a' or i == 'e' or i == 'i' or i == 'o' or i == 'u': 
    if listtext[i-1] == ' ': #line 7
      i = i + 1
    else:
      listtext[i] = ''
      i = i + 1

text = "".join(text_list)
print(text)

1 Ответ

0 голосов
/ 14 января 2019

Эту проблему легко решить с помощью RegEx. Попробуйте это:

import re

text = ' ' + input('Message: ')
text = re.sub(r'(?<! )[aeiouAEIOU]', '', text)[1:]
print(text)

Пример:

Message: Aaaa. Foo bar baz. An apple.
A. F br bz. An appl.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...