Я работаю над инструментом кодирования/декодирования азбуки Морзе. Я закончил работу над кодером и работаю над декодером. В настоящее время функция декодирования «MorseCodeDecoder(MSG)» может декодировать одну букву за раз. Для этого он проверяет каждый символ в строке один за другим и копирует их в переменную «EncodedLetter». Программа проверяет каждый символ на предмет, является ли это пробелом, если да, то программа определяет это пробел между буквами, например:
MSG = ".... .." -*the function runs*- EncodedLetter = "....".
Затем это значение снова просматривается в словаре (с использованием списков), чтобы найти, каким должен быть ключ EncodedLetter, в данном случае это «H», программа также проверяет наличие двойных пробелов, которые представляют собой пробел между двумя словами. На данный момент это может показаться полностью функциональным; однако после нахождения одной закодированной буквы он не может найти другую, поэтому ранее «.... ..» он не может найти «..», хотя я сбрасываю переменную после того, как она успешно декодирует букву.
MorseCodeDictionary = {' ': ' ', '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': '--..', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----'}
def MorseCodeEncoder(MSG):
EncodedMSG = f"""Encoded Message:
"""
MSG = MSG.upper()
for i in range(0, len(MSG), 1):
Encode = (MSG)
EncodedMSG = f"{EncodedMSG} {(MorseCodeDictionary.get(Encode))}"
return EncodedMSG
def MorseCodeDecoder(MSG):
DecodedMSG = f"""Decoded Message:
"""
MSG = MSG.upper()
DecodedWord = ''
DecodedLetter = ''
EncodedLetter = ''
for i in range(0, len(MSG)):
DecodedLetter = ''
Decode = (MSG)
try:
if (MSG[i + 1]) == ' ':
EncodedLetter = f"{EncodedLetter + (MSG)}"
DecodedLetter = list(MorseCodeDictionary.keys())[list(MorseCodeDictionary.values()).index(EncodedLetter)]
DecodedWord = DecodedWord + DecodedLetter
EncodedLetter = ''
DecodedMSG = f"{DecodedMSG} {DecodedWord}"
elif (MSG[i + 1]) + (MSG[i + 2]) == ' ':
DecodedWord = ''
else:
EncodedLetter = f"{EncodedLetter + (MSG)}"
except (ValueError,IndexError):
pass
return DecodedMSG
Loop = 1
while Loop == 1:
Choice = str(input("""[1] Encode, or [2] decode?
"""))
if Choice == '1':
MSG = str(input("""Type the message you would like to encode. Do not use puncuation.
"""))
EncodedMSG = (MorseCodeEncoder(MSG))
print (EncodedMSG)
elif Choice == '2':
MSG = str(input("""Type what you wish to decode.
"""))
DecodedMSG = (MorseCodeDecoder(MSG))
print (DecodedMSG)
else:
print ('1, or 2')
Подробнее здесь: https://stackoverflow.com/questions/672 ... characters
Почему мой инструмент декодирования азбуки Морзе не находит последующие символы? ⇐ Python
Программы на Python
1773069719
Anonymous
Я работаю над инструментом кодирования/декодирования азбуки Морзе. Я закончил работу над кодером и работаю над декодером. В настоящее время функция декодирования «MorseCodeDecoder(MSG)» может декодировать одну букву за раз. Для этого он проверяет каждый символ в строке один за другим и копирует их в переменную «EncodedLetter». Программа проверяет каждый символ на предмет, является ли это пробелом, если да, то программа определяет это пробел между буквами, например:
MSG = ".... .." -*the function runs*- EncodedLetter = "....".
Затем это значение снова просматривается в словаре (с использованием списков), чтобы найти, каким должен быть ключ EncodedLetter, в данном случае это «H», программа также проверяет наличие двойных пробелов, которые представляют собой пробел между двумя словами. На данный момент это может показаться полностью функциональным; однако после нахождения одной закодированной буквы он не может найти другую, поэтому ранее «.... ..» он не может найти «..», хотя я сбрасываю переменную после того, как она успешно декодирует букву.
MorseCodeDictionary = {' ': ' ', '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': '--..', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----'}
def MorseCodeEncoder(MSG):
EncodedMSG = f"""Encoded Message:
"""
MSG = MSG.upper()
for i in range(0, len(MSG), 1):
Encode = (MSG[i])
EncodedMSG = f"{EncodedMSG} {(MorseCodeDictionary.get(Encode))}"
return EncodedMSG
def MorseCodeDecoder(MSG):
DecodedMSG = f"""Decoded Message:
"""
MSG = MSG.upper()
DecodedWord = ''
DecodedLetter = ''
EncodedLetter = ''
for i in range(0, len(MSG)):
DecodedLetter = ''
Decode = (MSG[i])
try:
if (MSG[i + 1]) == ' ':
EncodedLetter = f"{EncodedLetter + (MSG[i])}"
DecodedLetter = list(MorseCodeDictionary.keys())[list(MorseCodeDictionary.values()).index(EncodedLetter)]
DecodedWord = DecodedWord + DecodedLetter
EncodedLetter = ''
DecodedMSG = f"{DecodedMSG} {DecodedWord}"
elif (MSG[i + 1]) + (MSG[i + 2]) == ' ':
DecodedWord = ''
else:
EncodedLetter = f"{EncodedLetter + (MSG[i])}"
except (ValueError,IndexError):
pass
return DecodedMSG
Loop = 1
while Loop == 1:
Choice = str(input("""[1] Encode, or [2] decode?
"""))
if Choice == '1':
MSG = str(input("""Type the message you would like to encode. Do not use puncuation.
"""))
EncodedMSG = (MorseCodeEncoder(MSG))
print (EncodedMSG)
elif Choice == '2':
MSG = str(input("""Type what you wish to decode.
"""))
DecodedMSG = (MorseCodeDecoder(MSG))
print (DecodedMSG)
else:
print ('1, or 2')
Подробнее здесь: [url]https://stackoverflow.com/questions/67234118/why-does-my-morse-code-decoding-tool-not-find-any-subsequent-characters[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия