该变量始终正确加密,它是一个字符串,但是当我尝试在该变量之外添加字符串时,它崩溃并需要字符。有什么建议吗?
monday_var = StringVar()
monday_box = tk.Checkbutton(self, state='active', variable=monday_var,
onvalue='Monday', offvalue='')
monday_box.grid(row=10, column=1)
def caesar():
string_new = monday_var.get()
new_file = open("personal decoded.txt", "w")
key = -1
decrypted_message = ""
for i in string_new:
letter_value = ord(i) + key
if letter_value > ord("z"):
letter_value -= ord("z") - ord("a") + 1
decrypted_message = decrypted_message + chr(letter_value)
new_file.write(decrypted_message)
new_file.close()
答案 0 :(得分:-1)
如果将字符串而不是字符传递给“ ord”,则会出现此错误。 可能您正在将长度为6的字符串传递给'ord'函数,这就是您遇到此错误的原因。
In[55]: ord('a')
Out[54]: 97
In[56]: ord("rhia")
Traceback (most recent call last):
File "C:\LegacyApp\Python27\lib\site-packages\IPython\core\interactiveshell.py",
line 2827, in run_code
exec code_obj in self.user_global_ns, self.user_ns
File "<ipython-input-55-7cc3b9b0818e>", line 1, in <module> ord("rhia")
TypeError: ord() expected a character, but string of length 4 found
在这里,当我将'a'传递给ord时,它返回值,但是当我传递一个字符串(“ rhia”)时,它会引发TypeError,因为ord仅接受一个字符或一个字符。