プログラムを一時停止する方法を見つけようとしています。メソッド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].--' –