-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path18_codigo_morse.py
90 lines (84 loc) · 2.4 KB
/
18_codigo_morse.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
"""/*
* Reto #9
* CÓDIGO MORSE
* Fecha publicación enunciado: 02/03/22
* Fecha publicación resolución: 07/03/22
* Dificultad: MEDIA
*
* Enunciado: Crea un programa que sea capaz de transformar texto natural a código morse y viceversa.
* - Debe detectar automáticamente de qué tipo se trata y realizar la conversión.
* - En morse se soporta raya "—", punto ".", un espacio " " entre letras o símbolos y dos espacios entre palabras " ".
* - El alfabeto morse soportado será el mostrado en https://es.wikipedia.org/wiki/Código_morse.
*
* Información adicional:
* - Usa el canal de nuestro discord (https://mouredev.com/discord) "🔁reto-semanal" para preguntas, dudas o prestar ayuda a la acomunidad.
* - Puedes hacer un Fork del repo y una Pull Request al repo original para que veamos tu solución aportada.
* - Revisaré el ejercicio en directo desde Twitch el lunes siguiente al de su publicación.
* - Subiré una posible solución al ejercicio el lunes siguiente al de su publicación.
*
*/"""
alfabeto_morse = {
'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':'--··',
'1':'.----',
'2':'··---',
'3':'···--',
'4':'····-',
'5':'·····',
'6':'-····',
'7':'--···',
'8':'---··',
'9':'----·',
'0':'-----',
' ':'/'
}
def find_in_dict(letter):
for key, value in alfabeto_morse.items():
if value == letter:
return key
def text_to_morse(text):
array = list(text)
morse = ""
for i in array:
morse = morse + alfabeto_morse[i]
morse = morse + " "
return morse
def morse_to_text(morse):
array = list(morse)
text = ""
letter = ""
for i in array:
if (i!=' '):
letter = letter + i
else:
find_in_dict(letter)
text = text + find_in_dict(letter)
letter = ""
text = text + find_in_dict(letter)
return text
print(text_to_morse("Jose Luis".upper()))
print(morse_to_text("·--- --- ··· · / ·-·· ··- ·· ···".upper()))