Добавление символов к каждому слову ввода

Как в python к каждому слову из введенной строки добавить нужные буквы? Сейчас только к первому слову получается

vowels = 'бвгджзклмнпрстф'
word = input('Введи текст: ')

if word[0].lower() in vowels:
    word = 'ххе' + word
elif word[0].lower() not in vowels and word[0].startswith('а'):
    word = 'ххя' + word[1:]
elif word[0].lower() not in vowels and word[0].startswith('о'):
    word = 'ххё' + word[1:]
elif word[0].lower() not in vowels and word[0].startswith('э'):
    word = 'ххе' + word[1:]
elif word[0].lower() not in vowels and word[0].startswith('е'):
    word = 'хх' + word[0:]
elif word[0].lower() not in vowels and word[0].startswith('ю'):
    word = 'хх' + word[0:]
elif word[0].lower() not in vowels and word[0].startswith('я'):
    word = 'хх' + word[0:]
elif word[0].lower() not in vowels and word[0].startswith('и'):
    word = 'хх' + word[0:]
elif word[0].lower() not in vowels and word[0].startswith('у'):
    word = 'ххю' + word[1:]
print(word)

Результат: Ввожу фразу из нескольких слов (например: вышел заяц погулять). На выводе должна быть фраза: ххевышел ххезаяц ххепогулять


Ответы (3 шт):

Автор решения: CameL

Видимо разбить строку на слова при помощи метода split

vowels = 'бвгджзклмнпрстф'
word = input('Введи текст: ')

for w in word.split():
    if w[0].lower() in vowels:
        w = 'ххе' + w
    elif w[0].lower() not in vowels and w[0].startswith('а'):
        w = 'ххя' + w[1:]
    elif w[0].lower() not in vowels and w[0].startswith('о'):
        w = 'ххё' + w[1:]
    elif w[0].lower() not in vowels and w[0].startswith('э'):
        w = 'ххе' + w[1:]
    elif w[0].lower() not in vowels and w[0].startswith('е'):
        w = 'хх' + w[0:]
    elif w[0].lower() not in vowels and w[0].startswith('ю'):
        w = 'хх' + w[0:]
    elif w[0].lower() not in vowels and w[0].startswith('я'):
        w = 'хх' + w[0:]
    elif w[0].lower() not in vowels and w[0].startswith('и'):
        w = 'хх' + w[0:]
    elif w[0].lower() not in vowels and w[0].startswith('у'):
        w = 'ххю' + w[1:]
    print(w)

Результат:

Введи текст: вышел заяц погулять
ххевышел
ххезаяц
ххепогулять
→ Ссылка
Автор решения: Dmitry

Добавлю решение, которое сокращает вашу реализацию. Я просто использую словарь, как сопоставление гласной и приставки, которая соответствует условию.

pattern_0 = {
    "е": "хх",
    "ю": "хх",
    "я": "хх",
    "и": "хх",
}
pattern_1 = {
    "а": "ххя",
    "о": "ххё",
    "э": "ххе",
    "у": "ххю",
}
vowels = 'бвгджзклмнпрстф'

test_str = "вышел заяц погулять на опушку"
result = []
for word in test_str.split():
    if word[0].lower() in vowels:
        result.append('ххе' + word)
    elif word[0].lower() in pattern_0.keys():
        result.append(pattern_0[word[0]] + word)
    else:
        result.append(pattern_1[word[0]] + word[1:])

print(*result)

Вывод

ххевышел ххезаяц ххепогулять ххена ххёопушку
→ Ссылка
Автор решения: SergFSM

вы также можете это сделать с помощью регулярного выражения, примерно так:

from re import sub

d = {"а":"я", "о":"ё", "у":"ю"}
word = input('Введи текст: ')

print(sub(r'\b\w', lambda m: f'xx{d.get(m[0],"e"*(m[0] not in "еюяи")+m[0])}', word))

>>> out
'''
Введи текст: вышли заяц, олень и удав погулять
xxeвышли xxeзаяц, xxёлень xxи xxюдав xxeпогулять
→ Ссылка