forked from turecekt/vs_project
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsource.py
132 lines (115 loc) · 2.66 KB
/
source.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
"""PREKLADAC MORSEOVKY."""
slovnik = {
# slovnik, obsahujici odpovidajici znaky v morseove abecede
# pismena
'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': '--..',
# cisla
'1': '.----',
'2': '..---',
'3': '...--',
'4': '....-',
'5': '.....',
'6': '-....',
'7': '--...',
'8': '---..',
'9': '----.',
'0': '-----',
# jine znaky
'&': ".-...",
"'": ".----.",
'@': ".--.-.",
')': "-.--.-",
'(': "-.--.",
':': "---...",
',': "--..--",
'=': "-...-",
'!': "-.-.--",
'.': ".-.-.-",
'-': "-....-",
'+': ".-.-.",
'"': ".-..-.",
'?': "..--..",
'/': "-..-.",
}
def sifrovani(text):
"""Funkce sifrovani.
funkce rozpozna znaky ve vlozenem
retezci a kazdemu z nich priradi
prislusny znak ze slovniku
return: sifrovany text
"""
sifrovany_text = ""
for znak in text.upper():
if znak != " ":
# hleda znak v retezci
sifrovany_text += slovnik[znak] + ' '
else:
# pokud najde mezeru, vlozi mezeru
sifrovany_text += " "
return sifrovany_text
def desifrovani(text):
"""Funkce desifrovani.
funkce rozpozna vlozeny kod v morseovce
a kazdemu znaku priradi prislusny znak
ze slovniku
return: desifrovany text
"""
global mezery
text += " "
morse = ""
desifrovany_text = ""
for znak in text:
if znak != " ":
morse += znak
mezery = 0
else:
# pokud najde 1 mezeru, pozna ze zacina novy znak
mezery += 1
if mezery == 2:
# pokud 2 mezery, zacina nove slovo
desifrovany_text += " "
else:
desifrovany_text += \
list(slovnik.keys())[list(slovnik.values()).index(morse)]
morse = ""
return desifrovany_text
# vstup od uzivatele:
def main():
"""Funkce na spousteni programu.
uzivatel zada textove retezec,
funkce vypise prelozene textove retezce
"""
print("\n\t\t PREKLADAC MORSEOVKY")
text = input("Vlozte text k sifrovani:")
vysledek = sifrovani(text.upper())
print(vysledek)
text = input("Vlozte kod k desifrovani:")
vysledek = desifrovani(text)
print(vysledek)
if __name__ == '__main__':
main()