본문 바로가기
공부/파이썬 Python

파이썬으로 문장을 모스 코드 mp3로 변환하기

by 혼밥맨 2022. 4. 29.
반응형

파이썬으로 문자열에서 모스 코드 mp3로 변환하기

파이썬으로 문장을 모스 코드 mp3로 변환하기

 

 

Morse Code (모스 코드)란... (or 모스 식 부호 or 모스 부호)

빛이나 소리의 길고 짧은 신호의 조합으로 글자가 표현되는 알파벳이나 코드입니다.

 

"I love you"를 모스 코드로 변환하면...?

= Di-di | di-dah-di-di dah-dah-dah di-di-di-dah di | dah-di-dah-dah dah-dah-dah di-di-dah. The word 'di' is equivalent to the short beep, while 'dah' is equivalent to the long beep.

= 디디 | 디다다다다다다다다다다다다다다다다다다다다다다다다다다다다다다다. 'di'는 짧은 삐삐와 같은 단어이고, 'dah'는 긴 삐와 같은 단어입니다.

모스 부호 딕셔너리 선언하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
translate_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""----.",
    "Ä"".-.-",
    "Ü""..--",
    "ß""...--..",
    "À"".--.-",
    "È"".-..-",
    "É""..-..",
    "."".-.-.-",
    ",""--..--",
    ":""---...",
    ";""-.-.-.",
    "?""..--..",
    "-""-....-",
    "_""..--.-",
    "(""-.--.",
    ")""-.--.-",
    "'"".----.",
    "=""-...-",
    "+"".-.-.",
    "/""-..-.",
    "@"".--.-.",
    "Ñ""--.--",
    " "" ",
    "" : ""
}
cs

 

모스 코드로 변환할 문자열 선언하기

1
2
message = "This is just a message"
message = " ".join(translate_dict[c] for c in message.upper())
cs

문자열을 모스 코드로 변환하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def play_morse_code(message):
    for c in message:
        if c == ".":
            playsound("short.mp3")
            time.sleep(0.3)
        elif c == "-":
            playsound("long.mp3")
            time.sleep(0.3)
        elif c == "/" or c ==" ":
            time.sleep(0.5)
        else:
            print("Invalid character detected!")
 
# 문자열을 변환한 모스 코드 출력
print(message)
 
 
play_morse_code(message)
reverse_dict = {v: k for k, v in translate_dict.items()}
reverse_message = "".join(reverse_dict[c] for c in message.split(" "))
 
# 모스코드를 문자열로 역변환
print(reverse_message)
cs

결과

1
2
3
# - .... .. ... / .. ... / .--- ..- ... - / .- / -- . ... ... .- --. .
 
# THIS IS JUST A MESSAGE
cs

 

반응형

댓글