Python-Text zu Morse-Übersetzer bricht auf halbem Weg
Nov 23 2020
Als Übung in Python habe ich versucht, einen Text für den Morseübersetzer zu erstellen. aber es bricht nach nur einmaliger Ausführung. Können Sie mir helfen, das Problem herauszufinden? (Es ist wahrscheinlich in Morse-Funktion) Funktion beep
ist für Ton, Wörterbuch item_list
ist eine Packung des speziellen Codes jedes Zeichens.
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()
Antworten
2 ReblochonMasque Nov 23 2020 at 08:51
Aus den Kommentaren sollte es sein sleep(.15)
Dann ist Ihre beep
Funktion zu "schmerzhaft", um sie anzusehen. Hier ist ein Vorschlag:
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()
Debug-Ausgabe:
.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----. .-.-.- --..-- ..--.. -...- -..-.