ord()需要一个字符,但是找到了长度为6的字符串

时间:2019-01-08 09:22:15

标签: python python-3.x ord

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

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

1 个答案:

答案 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仅接受一个字符或一个字符。