python文本到莫尔斯翻译器中途中断 [英] python text to morse translator breaks in mid-way
本文介绍了python文本到莫尔斯翻译器中途中断的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作为python的实践,我尝试将文本制作为莫尔斯翻译器.但它只执行一次后就中断了.你能帮我找出问题吗?(可能是莫尔斯函数)函数beep
是声音,字典item_list
是每个字符的特殊代码的包.
As a practice in python, I tried to make a text to morse translator. but it breaks after executing only once. Could you help me figure out the problem? (It's probably in morse function) function beep
is for sound, dictionary item_list
is a pack of every character's special code.
import winsound
import time
def beep(char):
if char == 'a':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'b':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'c':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'd':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'e':
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'f':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'g':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'h':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'i':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'j':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'k':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'l':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'm':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'n':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'o':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'p':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 'q':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'r':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 's':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == 't':
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'u':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'v':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'w':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'x':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'y':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == 'z':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '1':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '2':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '3':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '4':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '5':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '6':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '7':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '8':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '9':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == '0':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '.':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '-':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '/':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == ',':
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
elif char == '?':
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 500)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
winsound.Beep(500, 150)
time.sleep(150)
elif char == ' ':
print("\t")
else:
print("unknown")
winsound.Beep(500, 1000)
time.sleep(150)
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': '----. ',
' ': '\t',
'.': '.-.-.- ',
',': '--..-- ',
'?': '..--.. ',
'-': '-...- ',
'/': '-..-. '
}
def morse():
x = input("?")
name_list = list(x)
for x in name_list:
print(item_dict[f"{x}"])
beep(x)
morse()
print('''text to morse-text
enter the text you want''')
morse()
推荐答案
从评论来看,应该是sleep(.15)
那么,你的哔
功能太痛苦"观看,这里是一个建议:
Then, your beep
function is too "painful" to watch, here is a suggestion:
import winsound
import time
def beep(char):
"""translates a char into morse-code dashes and dots, and beeps them"""
sound = {'-': 500, '.': 150, ' ': 10}
for dashdot in item_dict.get(char, ' '):
if dashdot == '\t':
dashdot = ' '
# print(f'{dashdot}', end='')
winsound.Beep(500, sound[dashdot])
time.sleep(.15)
# print(' ', end='')
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': '----. ',
' ': '\t',
'.': '.-.-.- ',
',': '--..-- ',
'?': '..--.. ',
'-': '-...- ',
'/': '-..-. '
}
def morse():
x = input()
# x = item_dict.keys()
name_list = list(x)
for c in x:
beep(c)
print('''text to morse-text
enter the text you want''')
morse()
调试输出:
.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----. .-.-.- --..-- ..--.. -...- -..-.
这篇关于python文本到莫尔斯翻译器中途中断的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文