我已经用ceasar的方法编写了这个用于加密消息的程序,但是这个错误存在一个主要问题。它应该将字符串b更改为c并且c必须加密。然而,在tkinter.i中没有显示任何关于此错误的类似问题,但似乎没有任何与此案件有任何联系。有人帮忙吗??这里是代码。
def encrypt(event):
global top,c,root,e
a=e.get()
b=l.get()
top.destroy()
c=''
mystring=StringVar()
mystring.set(c)
for i in b:
if ord(i)in range(65,91) or ord(i) in range(97,123):
if ((ord(i)+a%26)>90 and ord(i)<=90) or (ord(i)+a%26)>122:
c=c+chr(ord(i)+a%26-26)
else:
c=c+chr(ord(i)+a%26)
else:
c=c+i
mystring.set(c)
Label(root,textvariable=mystring,bg='blue',fg='white',font=("Helvetica", 30)).pack()
root.update()
答案 0 :(得分:1)
e.get()
可能正在返回一个字符串。您已设置a = e.get
,之后,您执行a % 26
。 %
是int的模数,但是字符串的字符串格式。如果a不是用于格式化的正确字符串(例如"There were %s cows!"
),则会抛出TypeError
。通过使用IDLE的标准调试器或打印打印来测试每个变量的值以进行测试。