반응형
파이썬으로 문자열에서 모스 코드 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 |
반응형
'공부 > 파이썬 Python' 카테고리의 다른 글
ipywidgets 인터랙션 함수 작성 (Python ipywidgets) (0) | 2022.05.21 |
---|---|
선형대수 Python 과제3 풀이 (1) | 2022.05.04 |
광클하는 로봇 만들기 (파이썬 매크로, pynut mouse keyboard) (0) | 2022.04.22 |
파이썬으로 가짜 데이터 셋 만들기 (Faker) (0) | 2022.04.21 |
에브리타임 크롤링 & 워드클라우드 하는 방법 (2) | 2022.04.05 |
댓글