-
Notifications
You must be signed in to change notification settings - Fork 0
/
translator.py
105 lines (98 loc) · 3.18 KB
/
translator.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
#This dictionary contains equivalent letters to the morse code. White space " " defined as "/" as equivalent of breaks for between the words.
morse_dict={
"0":"-----",
"1":".----",
"2":"..---",
"3":"...--",
"4":"....-",
"5":".....",
"6":"-....",
"7":"--...",
"8":"---..",
"9":"----.",
"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":"--..",
"ä":".-.-",
"á":".--.-",
"å":".--.-",
"ç":"----",
"é":"..-..",
"ñ":"--.--",
"ö":"---.",
"ü":"..--",
"&":".-...",
"'":".----.",
"@":".--.-.",
")":"-.--.-",
"(":"-.--.",
":":"---...",
",":"--..--",
"=":"-...-",
"!":"-.-.--",
".":".-.-.-",
"-":"-....-",
"+":".-.-.",
'"':'.-..-.',
"?":"..--..",
"/":"-..-.",
" ":"/",
}
#This fuction get input from the user. This funcion is using only terminal program.
def get_expression():
# expression is getting from user with lower characters and rstrip removes white spaces in the end if its necessary.
get_expression_str = input("").lower().rstrip().lstrip() #methods added can be deleted
return get_expression_str
#This function check user that wants to work with program or not, It is not connected with the class MorseTranslator
def exit_quest():
exit_status = False # if it is True, program will end
check_exit = input("Do you want to translate morse again?(y/n) ").lower()
if(check_exit == "y" or check_exit == "yes" ):
print("Write you expression please.")
pass
elif(check_exit == "n" or check_exit == "no"):
print("Thank you and goodbye.")
exit_status = True
else:
print("Your answer is not valid.")
exit_quest() #with wrong answer exit_quest() function will work again
return exit_status
#Changing code for OOP, we get the results from class methods
class MorseTranslator:
def __init__(self,user_expression): # with lower characters and rstrip and lstrip removes white spaces in start and end if its necessary.
self.user_expression = user_expression.lower().rstrip().lstrip()
#Main translation function
def morse_translation_func(self):
morse_expression = '' # morse_expression is final expression (morse)
#In this loop we get every character from expression string and convert them to morse value which is matched on morse_dict dictionary.
for i in self.user_expression:
if i in morse_dict:
morse_expression = morse_expression + morse_dict[i] + " " #string concatenation
#print(morse_dict[i]) #for debugging only
# morse_expression[:-1] it saves us from whitespace in end.
morse_expression = morse_expression[:-1] #morse_expression.rstrip(" ") #it doesnt work here, new solution is done
#print(morse_expression) #for debugging only
return morse_expression