From 8cf5970a4d669c3ab46755ae3d4739c817e2efb7 Mon Sep 17 00:00:00 2001 From: Harshit Kr Vishwakarma Date: Thu, 7 Oct 2021 21:36:03 +0530 Subject: [PATCH 1/2] Added new python script, Morse code converter. --- Morse-Code-Converter/README.md | 14 ++++++ Morse-Code-Converter/converter_app.py | 41 +++++++++++++++++ Morse-Code-Converter/data.py | 57 ++++++++++++++++++++++++ Morse-Code-Converter/main.py | 14 ++++++ Morse-Code-Converter/morse.py | 63 +++++++++++++++++++++++++++ 5 files changed, 189 insertions(+) create mode 100644 Morse-Code-Converter/README.md create mode 100644 Morse-Code-Converter/converter_app.py create mode 100644 Morse-Code-Converter/data.py create mode 100644 Morse-Code-Converter/main.py create mode 100644 Morse-Code-Converter/morse.py diff --git a/Morse-Code-Converter/README.md b/Morse-Code-Converter/README.md new file mode 100644 index 00000000..402f5a77 --- /dev/null +++ b/Morse-Code-Converter/README.md @@ -0,0 +1,14 @@ +# Morse code converter +### What is Morse Code? +Morse Code is a character encoding scheme that allows operators to send messages using a series of electrical pulses represented as short or long pulses, dots, and dashes in other words. + +# Running this code +One can run this code in terminal as well as in tkinter window. +### Running in terminal. +```bash +python3 main.py +``` +### Running through tkinter app window. + ```bash + python3 converter_app.py + ``` diff --git a/Morse-Code-Converter/converter_app.py b/Morse-Code-Converter/converter_app.py new file mode 100644 index 00000000..f30cd81c --- /dev/null +++ b/Morse-Code-Converter/converter_app.py @@ -0,0 +1,41 @@ +from tkinter import * +from morse import MorseCode + +# translate object +translate = MorseCode() + +# --------------------------------BUTTON FUNCTIONS------------------------------ +# Button function morse +def code(): + text = e.get().strip() + print(text) + e.delete(0, END) + text = translate.to_morse(text) + e.insert(0, text) + +# Button function english +def decode(): + text = e.get().strip() + print(text) + e.delete(0, END) + e.insert(0, translate.to_english(text)) + +# Button function clear +def on_clear(): + e.delete(0, END) + +# -----------------------------------UI SETUP----------------------------------- +root = Tk() +root.title("Morse Code Converter") + +# Entry field +e = Entry(root, width=35, borderwidth=5) +e.grid(row=0, column=0, columnspan=3, pady=10, padx=10) +e.focus() + +code = Button(root, text="Code", command=code).grid(row=1, column=0) +clear = Button(root, text="Clear", command=on_clear).grid(row=1, column=1) +decode = Button(root, text="Decode", command=decode).grid(row=1, column=2) +exit = Button(root, text="EXIT", command=root.quit).grid(row=2, column=0, columnspan=3) + +root.mainloop() \ No newline at end of file diff --git a/Morse-Code-Converter/data.py b/Morse-Code-Converter/data.py new file mode 100644 index 00000000..d0e18348 --- /dev/null +++ b/Morse-Code-Converter/data.py @@ -0,0 +1,57 @@ +morse_code = { + "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":"-----", + ".":".-.-.-", + ",":"--..--", + "?":"..--..", + "'":".----.", + "!":"-.-.--", + "/":"-..-.", + "(":"-.--.", + "&":".-...", + ":":"---...", + ";":"-.-.-.", + "=":"-...-", + "+":".-.-.", + "-":"-....-", + "_":"..--.-", + "\"":".-..-.", + "$":"...-..-", + "@":".--.-.", + "¿":"..-.-", + "¡":"--...-" +} \ No newline at end of file diff --git a/Morse-Code-Converter/main.py b/Morse-Code-Converter/main.py new file mode 100644 index 00000000..5775c3a4 --- /dev/null +++ b/Morse-Code-Converter/main.py @@ -0,0 +1,14 @@ +from morse import MorseCode + +# Creating a traslate object using MorseCode class +translate = MorseCode() + +# Converting English to morse (encode) +text = input("enter a message to convert to morse code: ") +morse_code = translate.to_morse(text) +print(morse_code) + +#Converting Morse to english (decode) +text = input("enter morse code to convert to actual message: ") +english_text = translate.to_english(text) +print(english_text) \ No newline at end of file diff --git a/Morse-Code-Converter/morse.py b/Morse-Code-Converter/morse.py new file mode 100644 index 00000000..31df735a --- /dev/null +++ b/Morse-Code-Converter/morse.py @@ -0,0 +1,63 @@ +from data import morse_code + +class MorseCode: + def __init__(self): + self.in_morse = "" + self.in_english = "" + + def to_morse(self, sentence): + ''' + Takes one required parameter sentence of type string and + converts it into the equivalent morse code. + ''' + self.in_morse = "" + sentence = sentence.split(" ") + # print(sentence) + + morse_translation = [] + for word in sentence: + # Converting each word to a list of characters + word_ = list(word) + + # Matching every character with morse code in data.py + for letter in word_: + morse_translation.append(morse_code[letter.lower()]) + + # Adding a forwars slash at end of each word except the last word + if sentence.index(word) != len(sentence)-1: + morse_translation.append("/") + + # Joining the final list to make a string of morse code characters + self.in_morse = " ".join(morse_translation) + + return self.in_morse + + def to_english(self, code_in_morse): + ''' + Converts morse code to english takes one required parameter + code_in_morse as a string + ''' + self.in_english = "" + # Checking if the entered code has "/" as seperator or not? + if "/" in code_in_morse: + code_list = code_in_morse.split(" / ") + else: + code_list = code_in_morse.split(" ") + + # Creating a list for morse code to convert it later to english + morse_list = [] + for code in code_list: + code = code.split(" ") + morse_list.append(code) + + # Looping through the dictionary of morse code and replacing morse to letter + for word in morse_list: + for letter in word: + for key, value in morse_code.items(): + if letter == value: + self.in_english += key + + # After each word concatinating the white space + self.in_english += " " + + return self.in_english \ No newline at end of file From d5192369392e039892a3fb7ee7892b7d13c73e30 Mon Sep 17 00:00:00 2001 From: Harshit Kr Vishwakarma Date: Thu, 7 Oct 2021 21:45:43 +0530 Subject: [PATCH 2/2] Updated the Morse code converter README file as well as the main Repository readme file --- Morse-Code-Converter/README.md | 4 ++++ README.md | 1 + 2 files changed, 5 insertions(+) diff --git a/Morse-Code-Converter/README.md b/Morse-Code-Converter/README.md index 402f5a77..c114bce4 100644 --- a/Morse-Code-Converter/README.md +++ b/Morse-Code-Converter/README.md @@ -2,6 +2,10 @@ ### What is Morse Code? Morse Code is a character encoding scheme that allows operators to send messages using a series of electrical pulses represented as short or long pulses, dots, and dashes in other words. +## About +Using this program one can convert the english text or sentence to morse code and vice versa. +This code can be run in terminal or in tkinter window. + # Running this code One can run this code in terminal as well as in tkinter window. ### Running in terminal. diff --git a/README.md b/README.md index 35dfdf41..aca3c737 100644 --- a/README.md +++ b/README.md @@ -87,3 +87,4 @@ The contribution guidelines are as per the guide [HERE](https://github.com/larym | 44 | [Sudoku Solver](https://github.com/Mannuel25/Python-project-Scripts/tree/main/SudokuSolver) | [Ruben Grande Muñoz](https://github.com/RgrMz) | | 45 | [Duplicate File Remover](https://github.com/mas-designs/Python-project-Scripts/tree/main/Remove%20Duplicate%20Files%20in%20Folder) | [Michael Stadler](https://github.com/mas-designs) | | 46 | [Image Divider](https://github.com/larymak/Python-project-Scripts/tree/main/ImageDivider) | [Rajarshi Banerjee](https://github.com/GSAUC3) |) +| 47 | [Morse Code Converter](https://github.com/HarshitRV/Python-project-Scripts/tree/main/Morse-Code-Converter) | [HarshitRV](https://github.com/HarshitRV) |) \ No newline at end of file