from tkinter import * from tkinter import ttk def keycheck(): k = key_entry.get().lower() newk = "" check = 0 for i in range(len(k)): if ord(k[i]) in range(97,123): newk += k[i] check = 1 if check == 0: return "" if check != 0: return newk def encrypt(): newtext = "" text = text_entry.get().lower() key = keycheck() keycnt = 0 if key != "": for i in range(len(text)): if ord(text[i]) in range(97,123): #Checa que esté entre a y z if (ord(text[i]) + ord(key[keycnt])- 96 <= 122): #Checa que esté en la primera vuelta newtext += chr(ord(text[i]) + ord(key[keycnt])-96) else: #Por si está en la segunda vuelta newtext += chr(ord(text[i]) + ord(key[keycnt])-122) keycnt += 1 else: #Para espacios y otros símbolos newtext += text[i] if keycnt >= len(key): keycnt = 0 resultText.set(newtext) else: resultText.set("Key must contain at least one letter") def decrypt(): newtext = "" text = text_entry.get().lower() key = keycheck() keycnt = 0 for i in range(len(text)): if ord(text[i]) in range(97,123): #Checa que esté entre a y z if (ord(text[i]) - ord(key[keycnt])+ 96 >= 97): #Checa que esté en la primera vuelta newtext += chr(ord(text[i]) - ord(key[keycnt])+96) else: #Por si está en la segunda vuelta newtext += chr(ord(text[i]) - ord(key[keycnt])+122) keycnt += 1 else: #Para espacios y otros símbolos newtext += text[i] if keycnt >= len(key): keycnt = 0 resultText.set(newtext) #Create Window root = Tk() root.title("Cyphering & Decyphering") #Create widget frame in window mainframe = ttk.Frame(root, padding="3 3 12 12") #Create grid in widget, sticky to be used later mainframe.grid(column=0, row=0) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) #Variable resultText = StringVar() #Entries text_entry = ttk.Entry(mainframe, width= 50) text_entry.grid(column=1, row=2) key_entry = ttk.Entry(mainframe, width= 20) key_entry.grid(column=1, row=4) resultText_entry = ttk.Entry(mainframe, width= 50, textvariable = resultText) resultText_entry.grid(column=1, row=9) resultText_entry.config(state='readonly') #Labels ttk.Label(mainframe, text = "Text").grid(column=1, row=1) ttk.Label(mainframe, text = "Key").grid(column=1, row=3) ttk.Label(mainframe, text = "Result:").grid(column=1, row=8) ttk.Label(mainframe, text = "Remember, key must contain one letter").grid(column=1, row=5) #Buttons ttk.Button(mainframe, text="Cypher", command= encrypt).grid(column=1, row=6) ttk.Button(mainframe, text="Decypher", command = decrypt).grid(column=1, row=7) #For loop adds padding, focus() makes cursor start in Entry for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) text_entry.focus() root.mainloop()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question