【发布时间】:2021-03-20 15:26:53
【问题描述】:
我正在尝试使用 Python 制作文本到莫尔斯语的翻译器(在 vs 代码中使用 Python 3.8)但是行运行顺序存在问题。这是我的代码(问题在代码之后):
import winsound
import time
def beep(char):
sound = {
'-': 500,
'.': 150,
}
for dashdot in item_dict[char]:
winsound.Beep(500, sound[dashdot])
time.sleep(.05)
item_dict = {
'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': '--..',
'0': '-----',
'1': '.----',
'2': '..---',
'3': '...--',
'4': '....-',
'5': '.....',
'6': '-....',
'7': '--...',
'8': '---..',
'9': '----.',
'.': '.-.-.-',
',': '--..--',
'?': '..--..',
'-': '-...-',
'/': '-..-.'
}
def morse():
x = input("?\n")
name_list = list(x)
for x in name_list:
print(item_dict[f"{x}"], end=' ')
beep(x)
time.sleep(.5)
morse()
print('''text to morse-text
enter the text you want''')
morse()
正如您在这部分中看到的那样:
for x in name_list:
print(item_dict[f"{x}"], end=' ')
beep(x)
time.sleep(.5)
元素print 在函数beep 之前。所以它应该先打印然后发出噪音。但它会发出噪音,然后在为所有字符发出噪音后,打印代码。它有什么问题?
【问题讨论】:
-
我无法重现您的错误描述。每个声音都与每个莫尔斯电码字母的印刷相吻合。不错的应用程序。
-
谢谢,也许是 vs code 终端有问题,但它仍然会发出所有的声音,然后将单词全部打印出来。 @Mr.T
标签: python python-3.x morse-code