-3

该变量始终被正确加密,并且它是一个字符串,但是当我尝试在变量之外添加一个字符串时,它会崩溃并需要字符。有什么建议么?

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

1 回答 1

-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 只接受一个字符或后者。

于 2019-01-08T09:53:58.063 回答