Срочно прям очень
Международный радиотелефонный фонетический алфавит представляет собой таблицу обозначений букв. Каждой букве ставится в соответствие определённое кодовое слово (A - Alfa, B - Bravo, и т.д.) таким образом, чтобы последовательности букв (и цифр) могли быть легко произнесены и правильно поняты при голосовом общении по радио или телефону, независимо от родного языка передающей/принимающей стороны.
Напишите функцию 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
def encode_word(word):
if word == '':
return ''
elif not word[0].isalpha():
return encode_word(word[1:])
else:
letter = word[0].lower()
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'}
return alphabet[letter] + ' ' + encode_word(word[1:])
а ты 1.5 решил?
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()))
if not word:
return ''
first_letter = word[0]
rest_of_word = word[1:]
if first_letter in alphabet:
encoded_letter = alphabet[first_letter]
else:
encoded_letter = ''
return f"{encoded_letter} {encode_word(rest_of_word)}"
word = input('Введите слово: ')
encoded_word = encode_word(word)
print(encoded_word)
isdigit проверяешь и удаляешь все цифры
lower понижаешь регистр букв
split разделяешь каждую букву пробелом
И дальше заменяешь по букве используя словарь.