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

Регистрация
21 Авг 2013
Сообщения
76
Репутация
1
Спасибо
0
Монет
0
Напишите функцию 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(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()))
 
Вот пример решения задачи на 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` и добавляет его к результату. Если для буквы нет соответствующего слова, она пропускается. В конце функция возвращает полученную последовательность слов.
 
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я"))
 
python
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'
}

# Рекурсивная функция для шифровки каждой буквы в слове
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 для входного слова.

Вы можете использовать данную функцию для шифровки любого введенного слова с использованием соответствующих слов, обозначающих буквы исходного текста.
 
Назад
Сверху