Robię program, który pobiera dane wejściowe i przenosi je do kodu Morse'a w postaci sygnałów dźwiękowych komputera, ale nie mogę wymyślić, jak to zrobić, abym mógł umieścić więcej niż jedną literę na wejściu bez otrzymania błędu.Umożliwienie wielu znaków w konwerterze kodu Morse'a
Oto mój kod:
import winsound
import time
morseDict = {
'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': '--..'
}
while True:
inp = raw_input("Message: ")
a = morseDict[inp]
morseStr = a
for c in morseStr:
print c
if c == '-':
winsound.Beep(800, 500)
elif c == '.':
winsound.Beep(800, 100)
else:
time.sleep(0.4)
time.sleep(0.2)
Teraz trwa jedną literę na raz, ale chcę go do podjęcia zwrotów.
+1 za korzystanie ze słownika i problem z zabawą do rozwiązania. Nigdy nie myślałem o zrobieniu konwertera kodu Morse'a ... FWIW, jeśli chcesz poradzić sobie z frazami, prawdopodobnie będziesz musiał dodać wpis dotyczący spacji również w twoim słowniku. – mgilson
tak też naprawiłem to dziękuję! – Serial