Провозился с кодом несколько дней. Все равно не могу выполнить одно из условий задачи.
Задача:
Напиши функцию decode_morse, которая принимает строку message (закодированную азбукой Морзе) и возвращает раскодированную строку. Буквы в message разделены пробелом. Неправильные коды нужно заменить на -. Регистр не имеет значения в результате.
Примеры:
Сама Азбука морзе:
Мое код выглядит довольно таки нелепо, но выполняет все условия, кроме одного ("Function 'decode_morse' should return an empty string when message is empty")
Подскажите, в чем ошибка. Почему возвращает " - " , когда в сообщении ничего нет?
Задача:
Напиши функцию decode_morse, которая принимает строку message (закодированную азбукой Морзе) и возвращает раскодированную строку. Буквы в message разделены пробелом. Неправильные коды нужно заменить на -. Регистр не имеет значения в результате.
Примеры:
Код:
decode_morse('... --- ...') == 'SOS'
decode_morse('') == ''
decode_morse('... .----. ...') == 'S-S'
Сама Азбука морзе:
Код:
symbols = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
morse_codes = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '.----', '..---', '...--', '....-', '.....', '-....', '--...', '---..', '----.', '-----']
Мое код выглядит довольно таки нелепо, но выполняет все условия, кроме одного ("Function 'decode_morse' should return an empty string when message is empty")
Код:
def decode_morse(message: str) -> str:
# write your code here
if message == 0:
return ' '
message = message.upper()
message = message.split(" ")
text = ''
morse_codes = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.',
'---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '.----',
'..---', '...--', '....-', '.....', '-....', '--...', '---..', '----.', '-----']
for symb in message:
if symb == '.-':
text += 'A'
if symb == '-...':
text += 'B'
if symb == '-.-.':
text += 'C'
if symb == '-..':
text += 'D'
if symb == '.':
text += "E"
if symb == '..-.':
text += 'F'
if symb == '--.':
text += 'G'
if symb == '....':
text += 'H'
if symb == '..':
text += 'I'
if symb == '.---':
text += 'J'
if symb == '-.-':
text += 'K'
if symb == '.-..':
text += 'L'
if symb == '--':
text += 'M'
if symb == '-.':
text += 'N'
if symb == '---':
text += 'O'
if symb == '.--.':
text += 'P'
if symb == '--.-':
text += 'Q'
if symb == '.-.':
text += 'R'
if symb == '...':
text += 'S'
if symb == '-':
text += 'T'
if symb == '..-':
text += 'U'
if symb == '...-':
text += 'V'
if symb == '.--':
text += 'W'
if symb == '-..-':
text += 'X'
if symb == '-.--':
text += 'Y'
if symb == '--..':
text += 'Z'
if symb == '.----':
text += '1'
if symb == '..---' :
text += '2'
if symb == '...--':
text += '3'
if symb == '....-':
text += '4'
if symb == '.....':
text += '5'
if symb == '-....':
text += '6'
if symb == '--...':
text += '7'
if symb == '---..':
text += '8'
if symb == '----.':
text += '9'
if symb == '-----':
text += '0'
if symb not in morse_codes:
text += '-'
return text
Подскажите, в чем ошибка. Почему возвращает " - " , когда в сообщении ничего нет?