Python

Помогите пожалуйста решить задачу на python

Напишите функцию encode_word, которая будет принимать слово у пользователя и возвращать его в виде шифра из соответствующих слов, обозначающих буквы исходного текста.
Например, если введено слово ’Hello’, на экране должна быть отображена следующая последовательность слов: Hotel Echo Lima Lima Oscar.
Для решения этой задачи вам предстоит использовать рекурсивную функцию, а не циклы. При этом все небуквенные символы, которые могут быть поданы на вход, нужно игнорировать.
alphabet = ’a’: ’Alpha’, ’b’: ’Bravo’, ’c’: ’Charlie’, ’d’: ’Delta’, ’e’: ’Echo’, ’f’: ’Foxtrot’, ’g’: ’Golf’, ’h’: ’Hotel’, ’i’: ’India’, ’j’: ’Juliett’, ’k’: ’Kilo’, ’l’: ’Lima’, ’m’: ’Mike’, ’n’: ’November’, ’o’: ’Oscar’, ’p’: ’Papa’, ’q’: ’Quebec’, ’r’: ’Romeo’, ’s’: ’Sierra’, ’t’: ’Tango’, ’u’: ’Uniform’, ’v’: ’Victor’, ’w’: ’Whiskey’, ’x’: ’Xray’, ’y’: ’Yankee’, ’z’: ’Zulu’

Пример
Ввод
He432llo
Вывод
Hotel Echo Lima Lima Oscar
Вот пример решения задачи на Python:

```python
alphabet = {
'a': 'Alpha', 'b': 'Bravo', 'c': 'Charlie', 'd': 'Delta', 'e': 'Echo', 'f': 'Foxtrot',
'g': 'Golf', 'h': 'Hotel', 'i': 'India', 'j': 'Juliett', 'k': 'Kilo', 'l': 'Lima',
'm': 'Mike', 'n': 'November', 'o': 'Oscar', 'p': 'Papa', 'q': 'Quebec', 'r': 'Romeo',
's': 'Sierra', 't': 'Tango', 'u': 'Uniform', 'v': 'Victor', 'w': 'Whiskey',
'x': 'Xray', 'y': 'Yankee', 'z': 'Zulu'
}

def encode_word(word):
# Убираем все небуквенные символы из слова
word = ''.join(filter(str.isalpha, word.lower()))

# Базовый случай рекурсии - если слово пустое
if not word:
return ''

# Рекурсивный случай - обрабатываем первую букву слова и рекурсивно вызываем функцию для оставшейся части слова
first_letter = word[0]
rest_of_word = word[1:]
encoded_word = alphabet.get(first_letter, '') # Получаем соответствующее слово для буквы
if encoded_word:
# Если для буквы есть соответствующее слово, добавляем его к результату и вызываем функцию рекурсивно для оставшейся части слова
return encoded_word + ' ' + encode_word(rest_of_word)
else:
# Если для буквы нет соответствующего слова, пропускаем ее и вызываем функцию рекурсивно для оставшейся части слова
return encode_word(rest_of_word)

# Пример использования функции
word = input("Введите слово: ")
encoded_word = encode_word(word)
print(encoded_word)
```

Эта функция принимает слово от пользователя, убирает все небуквенные символы из него, затем рекурсивно обрабатывает каждую букву в слове, находит соответствующее слово для каждой буквы в словаре `alphabet` и добавляет его к результату. Если для буквы нет соответствующего слова, она пропускается. В конце функция возвращает полученную последовательность слов.
Сегей Ладыреф
Сегей Ладыреф
315
Лучший ответ
Решение без рекурсии:
 def encode_word(s):
return ' '.join(t for c in s if (t := {
'a': 'Alpha', 'b': 'Bravo', 'c': 'Charlie', 'd': 'Delta',
'e': 'Echo', 'f': 'Foxtrot', 'g': 'Golf', 'h': 'Hotel',
'i': 'India', 'j': 'Juliett', 'k': 'Kilo', 'l': 'Lima',
'm': 'Mike', 'n': 'November', 'o': 'Oscar', 'p': 'Papa',
'q': 'Quebec', 'r': 'Romeo', 's': 'Sierra', 't': 'Tango',
'u': 'Uniform', 'v': 'Victor', 'w': 'Whiskey', 'x': 'Xray',
'y': 'Yankee', 'z': 'Zulu'
}.get(c, '')))

print(encode_word(input()))
Рекурсивный вариант:
 def encode_word(s):
return s and ' '.join({
'a': ['Alpha'], 'b': ['Bravo'], 'c': ['Charlie'], 'd': ['Delta'],
'e': ['Echo'], 'f': ['Foxtrot'], 'g': ['Golf'], 'h': ['Hotel'],
'i': ['India'], 'j': ['Juliett'], 'k': ['Kilo'], 'l': ['Lima'],
'm': ['Mike'], 'n': ['November'], 'o': ['Oscar'], 'p': ['Papa'],
'q': ['Quebec'], 'r': ['Romeo'], 's': ['Sierra'], 't': ['Tango'],
'u': ['Uniform'], 'v': ['Victor'], 'w': ['Whiskey'], 'x': ['Xray'],
'y': ['Yankee'], 'z': ['Zulu']
}.get(s[0], []) + ((t := encode_word(s[1:])) and [t] or [])) or ''

print(encode_word(input()))
ЮП
Юрий Принц
83 141
 def encode_word(word): 
alphabet = {
'a': 'Alpha', 'b': 'Bravo', 'c': 'Charlie', 'd': 'Delta', 'e': 'Echo', 'f': 'Foxtrot',
'g': 'Golf', 'h': 'Hotel', 'i': 'India', 'j': 'Juliett', 'k': 'Kilo', 'l': 'Lima',
'm': 'Mike', 'n': 'November', 'o': 'Oscar', 'p': 'Papa', 'q': 'Quebec', 'r': 'Romeo',
's': 'Sierra', 't': 'Tango', 'u': 'Uniform', 'v': 'Victor', 'w': 'Whiskey',
'x': 'Xray', 'y': 'Yankee', 'z': 'Zulu'
}
word = ''.join(filter(str.isalpha, word.lower()))
return "" if not word else "{} {}".format(alphabet.get(word[0], ''), encode_word(word[1:]))

print(encode_word("He135lloя"))
Aslan Chardonay
Aslan Chardonay
7 589
модуль и номер задачи скажи, помогу
КК
Калян Калян
3 416
Неизвестно Неизвестно это итоговая аттестация 3 модуль 1.4 задача