Напишите функцию encode_word, которая будет принимать слово у пользователя и возвращать его в виде шифра из соответствующих слов, обозначающих буквы исходного текста.
Например, если введено слово ’Hello’, на экране должна быть отображена следующая последовательность слов: Hotel Echo Lima Lima Oscar.
Для решения этой задачи вам предстоит использовать рекурсивную функцию, а не циклы. При этом все небуквенные символы, которые могут быть поданы на вход, нужно игнорировать.
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` и добавляет его к результату. Если для буквы нет соответствующего слова, она пропускается. В конце функция возвращает полученную последовательность слов.
# Рекурсивная функция для шифровки каждой буквы в слове
def encode_char(char):
char_lower = char.lower()
if char_lower.isalpha():
return alphabet[char_lower]
else:
return ""
# Рекурсивная функция для обработки каждого символа в слове
def process_word(word):
if len(word) == 1:
return encode_char(word[0])
else:
return encode_char(word[0]) + " " + process_word(word[1:])
return process_word(word)
# Пример использования
word = input("Введите слово: ")
encoded_word = encode_word(word)
print(encoded_word)
В данном решении функция encode_word принимает слово word в качестве входного параметра и использует две вложенные рекурсивные функции: encode_char для шифровки отдельной буквы и process_word для обработки всего слова.
Функция encode_char проверяет, является ли символ буквой, и если да, возвращает соответствующее слово из словаря alphabet.
Функция process_word рекурсивно обрабатывает каждый символ в слове. Если длина слова равна 1, функция просто вызывает encode_char для этого символа. В противном случае она вызывает encode_char для первого символа и рекурсивно вызывает process_word для остальной части слова, затем объединяет результаты с помощью пробела.
Наконец, функция encode_word возвращает результат вызова process_word для входного слова.
Вы можете использовать данную функцию для шифровки любого введенного слова с использованием соответствующих слов, обозначающих буквы исходного текста.