Форум сайта python.su
0
Вот мой код:
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

Отредактировано Xryst (Март 3, 2015 17:24:35)
Офлайн
103
вот немного исправил
а дальше сами
если не сможете напишу правильный код
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')
Офлайн
0
А правильно ли я у бераю лишнее пробелы, а то они не убераются?
if len(morze): while morze[-1] == '.': morze = morze[:-1]
Офлайн
103
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 '
Офлайн
0
Извиняюсь, это я лоханулся) При исправлении кода:
while morze[-1] == '.':
while morze[-1] == '_':
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)
Офлайн
103
Xrystдавайте код
Ну не могу понять, как исправить вот это:
Офлайн
103
for i in text: if i == ' ': morze += '____' elif i.upper() in morse_code.keys():
Отредактировано terabayt (Март 3, 2015 21:48:33)
Офлайн
0
terabaytНу это я заменяю пробелы если есть в тексте.

for i in text: if i == ' ': add_morzes = '__'
Отредактировано Xryst (Март 3, 2015 22:04:39)
Офлайн
103
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')
Отредактировано terabayt (Март 3, 2015 22:08:18)
Офлайн
0
terabaytНу кинь посмотрю, ну мне интересно где же в моем коде запарка((?
Офлайн