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 的标准调试器或打印来打印每个变量的值进行测试。
我一直在编写这个程序来通过 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 的标准调试器或打印来打印每个变量的值进行测试。