Форум сайта python.su
Я решил сделать перевод с морзянки на русский язык. Сразу говорю, что в моем переводчике “p” является пробелом. Вот код:
def Morze_to_Rus(dic2): text=input("Морзе Текст: ") text = str(text) result="" result1="" for b in range(0, len(text)): ba = text[b] if ba == "p": result = result + " " if not ba == " ": result1 = result1+ba else: print(dic2[result1]) print(result1) result = result + dic2[result1] result1 = "" print("ОТВЕТ: "+result) if __name__ == "__main__": d0 = dict(а="*-", б="-***", в="*--", г="--*", д="-**",е="*",ё="*", ж="***-",з="--**",и="**", й="*---", к="-*-", л="*-**", м="--", н="-*",о="---",п="*--*", р="*-*",с="***", т="-",у="**-", ф="**-*", х="****",ц="-*-*", ч="---*", ш="----",щ="--*-", ъ="--*--",ы="-*--",ь="-**-", э="**-**",ю="**--", я="*-*-", p=" ") d1 = {} for v in d0: d1[d0[v]] = v Morze_to_Rus(d1)
Офлайн
Это потому что у вас признак “окончания” буквы в морзянке пробел, а в конце строки обычно пробел не ставят, вот последний символ и сьедается.А ввобще используйте метод строк strip для подобных случаев
https://docs.python.org/2/library/stdtypes.html#str.split
For example, '1 2 3'.split() returns ['1', '2', '3']
[code python][/code]
Отредактировано PEHDOM (Март 18, 2017 20:32:47)
Офлайн
а последняя буква случайно не р?
Офлайн