1

プログラムを一時停止する方法を見つけようとしています。メソッドencodeMesssageは正常に機能しており、各文字を対応するモールス符号文字に変換しています。文字の終わりに達すると、回転して文字の一時停止が行われ[lpause]ます。次に、完全な単語を終了した後、単語を一時停止し[wpause]ます。

私の 2 番目の方法は、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]-.[wpause] -.-.[lpause]---[lpause].--' –

4

1 に答える 1