Python莫尔斯电码暂停
我正在想办法让我的程序暂停。该方法工作正常,将每个字母转换为对应的莫尔斯电码字母。当它到达一个字母的末尾时,它会使字母暂停[lpause]。然后在完成一个完整的单词后,它将给出一个单词暂停[wpause] 我的第二种方法是通过windsound模块将此消息转换为实际声音。蜂鸣音工作正常,我的问题是我似乎无法让[lpause]和[wpause]正常工作 莫尔斯电码=,,,'D':,,,,'D':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,…-'、'W':'.-'、'X':'-.-'、'Y':'-.-'、'Z':'-.-'、'1':'-'、'2':'、'3':'、'4':'、'5':'、'6':'-.、'7':'、'8':'--..','9':'-,'0':'-'} 下面是encodeMessage的输出示例Python莫尔斯电码暂停,python,morse-code,Python,Morse Code,我正在想办法让我的程序暂停。该方法工作正常,将每个字母转换为对应的莫尔斯电码字母。当它到达一个字母的末尾时,它会使字母暂停[lpause]。然后在完成一个完整的单词后,它将给出一个单词暂停[wpause] 我的第二种方法是通过windsound模块将此消息转换为实际声音。蜂鸣音工作正常,我的问题是我似乎无法让[lpause]和[wpause]正常工作 莫尔斯电码=,,,'D':,,,,'D':,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
....[lpause].[lpause].-[wpause].[lpause]-[lpause].-[wpause].-[lpause]--[lpause]…-[wpause]。-[wpause]-…[lpause]。-[lpause]-[lpause]-[lpause]。-[lpause]-[wpau]se].-.-.[lpause]-[lpause].-'-我认为您可能应该为字母和单词暂停使用一个字符的标识符,因为您使用每个字符的检查来确定发出什么声音。我已将暂停标识符替换为“l”和“w”,并相应地调整了SendMoreCodedMessage函数:
def encodeMessage(m):
message = m.upper().strip()
encodedMessage =''
isInWord = False
for ch in message:
if isInWord:
if ch in morseCode:
encodedMessage += 'l'+ morseCode[ch]
else:
encodedMessage += 'w'
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)
elif ch == 'w':
time.sleep(3)
elif ch == 'l':
time.sleep(1)
return None
您应该在问题文本中添加额外的信息,而不是作为注释。我的问题是我似乎无法让[lpause]和[wpause]正常工作。是的,[lpause]应该暂停1秒,然后for循环应该继续执行。并且-哔哔声。然后它应该暂停一个字[wpause]大约3秒钟来区分2。但是,目前我让lpause和wpause同时工作1秒钟。除了它们暂停短语[lpause]中的每个字母之外。例如-[pause l pause p pause a pause u pause s pause e e pause。我希望它需要[lpause]作为一个整体,让它停下来,而不是一个字母一个字母地停下来。因此,如果它读[lpause]pause,那么它将继续谢谢你,这对我来说更有意义。我的导师包括了长短语,它们对我来说有点荒谬。谢谢你的帮助!
def encodeMessage(m):
message = m.upper().strip()
encodedMessage =''
isInWord = False
for ch in message:
if isInWord:
if ch in morseCode:
encodedMessage += 'l'+ morseCode[ch]
else:
encodedMessage += 'w'
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)
elif ch == 'w':
time.sleep(3)
elif ch == 'l':
time.sleep(1)
return None