typeerror:not all arguments converted during string formatting

typeerror:not all arguments converted during string formatting

我一直在编写这个程序来通过 ceasar 的方法加密消息,但我对这个错误有一个主要问题。它应该将字符串 b 更改为 c 并且 c 必须被加密。然而 tkinter.i 中没有任何显示关于此错误的几个类似问题,但 none 似乎与此有任何联系 case.could 有人帮助吗??这是代码。

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()

e.get() 可能 正在返回一个字符串。您已经设置了 a = e.get,然后您设置了 a % 26% 是 int 的模数,但是是字符串的字符串格式。如果 a 不是用于格式化的正确字符串(例如 "There were %s cows!"),它将抛出 TypeError。通过使用 IDLE 的标准调试器或打印来打印每个变量的值进行测试。