Найти - Пользователи
Полная версия: Морзянка. Цикл.
Начало » Python для новичков » Морзянка. Цикл.
1
python335
Я решил сделать перевод с морзянки на русский язык. Сразу говорю, что в моем переводчике “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)
Работает то он нормально,Но проблема в том, что последнюю букву он мне не выдает. Все проверил! Ну просто не видит он ее. Что мне делать? Подкинте идейку - буду признателен.
PEHDOM
Это потому что у вас признак “окончания” буквы в морзянке пробел, а в конце строки обычно пробел не ставят, вот последний символ и сьедается.А ввобще используйте метод строк strip для подобных случаев
https://docs.python.org/2/library/stdtypes.html#str.split
 For example, '1 2 3'.split() returns ['1', '2', '3']
marvellik
а последняя буква случайно не р?
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