Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2015 17:12:02

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

Вот мой код:

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’
Должен быть такой результат: .

Подкажите, что нужно изменить, или добавить в код?

Отредактировано Xryst (Март 3, 2015 17:24:35)

Офлайн

#2 Март 3, 2015 17:30:33

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

вот немного исправил
а дальше сами
если не сможете напишу правильный код

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')



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Март 3, 2015 19:23:53

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

А правильно ли я у бераю лишнее пробелы, а то они не убераются?

 if len(morze):
         while morze[-1] == '.':
            morze = morze[:-1]

Офлайн

#4 Март 3, 2015 19:58:46

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

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  '



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Март 3, 2015 21:20:22

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

Извиняюсь, это я лоханулся) При исправлении кода:

         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')

Отредактировано Xryst (Март 3, 2015 21:47:42)

Офлайн

#6 Март 3, 2015 21:38:16

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

Xryst
Ну не могу понять, как исправить вот это:
давайте код



————————————————
-*- Simple is better than complex -*-

Офлайн

#7 Март 3, 2015 21:48:10

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

for i in text:
        if i == ' ':
           morze += '____'
        elif i.upper() in morse_code.keys():



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 3, 2015 21:48:33)

Офлайн

#8 Март 3, 2015 21:56:45

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

terabayt
Ну это я заменяю пробелы если есть в тексте.
Нашел такую картинку в google

А если сделать так
for i in text:
        if i == ' ':
           add_morzes = '__'

Отредактировано Xryst (Март 3, 2015 22:04:39)

Офлайн

#9 Март 3, 2015 22:07:50

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

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')
могу скинуть готовое решение?!



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 3, 2015 22:08:18)

Офлайн

#10 Март 3, 2015 22:12:06

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Не правильный ответ функции: encode_morze(text)

terabayt
Ну кинь посмотрю, ну мне интересно где же в моем коде запарка((?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version