要实现Python界面化我们首先要引入tkinter库
from tkinter import *
from tkinter.ttk import Combobox
先是自定义函数实现凯撒密码,这部分比较简单
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3),这时可以使用rot3来表示:
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
def kaisa(event):key=int(t1.get()) //偏移量message=str(t2.get()).upper() //密文dic={0:'加密',1:'解密'}model=dic[comb.current()]letter='ABCDEFGHIJKLMNOPQRSTUVWXYZ'sult=''for i in message:if i in letter:num=letter.find(i)if model=='加密':num=num+keyif model=='解密':num=num-keyif num>=len(letter):num=num-len(letter)if num<0:num=num+len(letter)sult=sult+letter[num]else:sult=sult+ilib.config(text=str(sult)) //输出结果
接下来就是写界面 ,我们用到Tk库中的一些函数来实现,具体函数用法大家可以去官网学习,这里放出我的代码,第一次用这个库界面不是很美观,大家可以调整
root = Tk()
root.title('凯撒密码')
root.geometry('500x400')t1=Entry(root)
t1.place(relx=0.2,rely=0.1,relwidth=0.2,relheight=0.05)
t1.insert(5,'输入偏移量')t2=Entry(root)
t2.place(relx=0.2,rely=0.2,relwidth=0.6,relheight=0.05)
t2.insert(5,'输入字符串')var=StringVar()comb=Combobox(root,textvariable=var,values=['加密','解密'])
comb.place(relx=0.2,rely=0.3,relwidth=0.2,relheight=0.1)b1=Button(root,text='运行')
b1.place(relx=0.2,rely=0.4,relwidth=0.2,relheight=0.1)
b1.bind('<1>',kaisa)lib=Label(root,text='结果')
lib.place(relx=0.2,rely=0.6,relwidth=1,relheight=0.3)root.mainloop()
这就是最后运行的界面