Найти - Пользователи
Полная версия: Не правильный ответ функции: encode_morze(text)
Начало » Центр помощи » Не правильный ответ функции: encode_morze(text)
1 2
Xryst
Вот мой код:
morse_code = {
    "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" : "--.."
}
def encode_morze(text):
    morze = ''
    for i in text:
      add_morzes = ''
    if i == ' ':
       add_morzes = '____'
     
    elif i.upper() in morse_code.keys():
        
        add_morzes = morse_code[i.upper()].replace('.','^_').replace('-','^^^_') + '__'
        morze = morze + add_morzes
        if len(morze):
         while morze[-1] == '.':
            morze = morze[:-1]
        
        return morze
При проверки выдает, не правильный ответ:
Ввод таких данных:
encode_morze('Morze code')
Выдает результат:

А должен быть такой результат: ^^^_^^^___^^^_^^^_^^^___^_^^^_^___^^^_^^^_^_^___^_______^^^_^_^^^_^___^^^_^^^_^^^___^^^_^_^___^
Ввод таких даных: encode_morze('1.23')
Выдает результат: ‘None’
Должен быть такой результат: .

Подкажите, что нужно изменить, или добавить в код?
terabayt
вот немного исправил
а дальше сами
если не сможете напишу правильный код
morse_code = {
    "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" : "--.."
}
def encode_morze(text):
    morze = ''
    for i in text:
        if i == ' ':
           add_morzes = '____'
        elif i.upper() in morse_code.keys():
            add_morzes = morse_code[i.upper()].replace('.','^_').replace('-','^^^_') + '__'
            morze = morze + add_morzes
    return morze
print encode_morze('Morze code')
Xryst
А правильно ли я у бераю лишнее пробелы, а то они не убераются?
 if len(morze):
         while morze[-1] == '.':
            morze = morze[:-1]
terabayt
Xryst
А правильно ли я у бераю лишнее пробелы
вы убираете не пробелы а точки
>>> morze = 'a..'
>>> if len(morze):
...          while morze[-1] == '.':
...             morze = morze[:-1]
... 
>>> morze
'a'
>>> morze = 'a  '
>>> if len(morze):
...          while morze[-1] == '.':
...             morze = morze[:-1]
... 
>>> morze
'a  '

Xryst
Извиняюсь, это я лоханулся) При исправлении кода:
         while morze[-1] == '.':
На
         while morze[-1] == '_':
При вводе данных: ('HOUSTON WE HAVE A PROBLEM')


Не пойму, где ошибка(((
morse_code = {
    "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" : "--.."
}
def encode_morze(text):
    morze = ''
    for i in text:
        if i == ' ':
           add_morzes = '____'
        elif i.upper() in morse_code.keys():
            add_morzes = morse_code[i.upper()].replace('.','^_').replace('-','^^^_') + '__'
            morze = morze + add_morzes
    if len(morze):
         while morze[-1] == '_':
            morze = morze[:-1]
    return morze
print encode_morze('Morze code')
terabayt
Xryst
Ну не могу понять, как исправить вот это:
давайте код
terabayt
for i in text:
        if i == ' ':
           morze += '____'
        elif i.upper() in morse_code.keys():
Xryst
terabayt
Ну это я заменяю пробелы если есть в тексте.
Нашел такую картинку в google

А если сделать так
for i in text:
        if i == ' ':
           add_morzes = '__'
terabayt
Xryst
А если сделать так
нет
morse_code = {
    "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" : "--.."
}
def encode_morze(text):
    morze = ''
    for i in text:
        if i == ' ':
            morze = morze + '____'
        elif i.upper() in morse_code.keys():
            add_morzes = morse_code[i.upper()].replace('.','^_').replace('-','^^^_') + '__'
            morze = morze + add_morzes
    if len(morze):
         while morze[-1] == '_':
            morze = morze[:-1]
    return morze
print encode_morze('HOUSTON WE HAVE A PROBLEM')
могу скинуть готовое решение?!
Xryst
terabayt
Ну кинь посмотрю, ну мне интересно где же в моем коде запарка((?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB