Я пытаюсь расшифровать шифр Цезаря, но продолжаю получать: ord() ожидаемый символ, но найдена строка длиной 10

#python #github #encryption #computer-science #lab

Вопрос:

 shift = 3

encrypted_text = open("book.txt", "r", encoding="utf-8")

plain_text = ""

for c in encrypted_text:
    
    if c.isupper():
        c_unicode = ord(c)

        c_index = ord(c) - ord("A")

        new_index = (c_index - shift) % 26

        new_unicode = new_index   ord("A")

        new_character = chr(new_unicode)

        plain_text = plain_text   new_character

    else:

        plain_text  = c

encrypted_text.close()

print("Decrypted text:", plain_text)
 

Комментарии:

1. Пожалуйста, обновите свой вопрос с полным отслеживанием ошибок.

2. c будет возвращать строку за раз, а не символ. Вы, наверное, хотите for c in encrypted_text.read()

3. Он больше не выдает мне ошибку, но когда я запускаю его и он печатает текст, он все равно печатает зашифрованный текст