Я пытаюсь понять, как сделать паузу в моей программе. Метод encodeMesssage
работает нормально и превращает каждую букву в соответствующую букву азбуки Морзе. Как только он достигает конца буквы, он поворачивается и дает буквенную паузу [lpause]
. Затем, после того, как он закончит полное слово, он даст паузу в слове [wpause]
.
Мой второй метод должен превратить это сообщение в настоящие звуки с помощью модуля Windsound. Звуковые сигналы работают нормально, моя проблема в том, что я не могу заставить [lpause]
и [wpause]
работать.
morseCode = {'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 encodeMessage(m):
message = m.upper().strip()
encodedMessage =''
isInWord = False
for ch in message:
if isInWord:
if ch in morseCode:
encodedMessage += '[lpause]'+ morseCode[ch]
else:
encodedMessage += '[wpause]'
isInWord = False
else: # not in word
if ch in morseCode:
encodedMessage += morseCode[ch]
isInWord = True
else:
pass # nothing to do
return encodedMessage
def sendMoreCodedMessage(message):
for ch in message:
if ch == '.':
winsound.Beep(200, 100)
elif ch == '-':
winsound.Beep(370, 100)
else:
time.sleep(1)
return None
вот пример вывода из encodeMessage
....[lpause].[lpause]-.--[wpause]-.[lpause]---[lpause].--[wpause]-.--[lpause ]---[lpause]..-[wpause].-[wpause]-..[lpause].-.[lpause]---[lpause].--[lpause]-.[wpausese ]-.-.[lpause]---[lpause].--' –