Как перевести порядковые номера символов ASCII Win-1251 кириллицы в строку русских букв в PYTHON?

Как из

Зашифрованный текст: Êëã÷àí

207

240

232

226

229

242

Получить слово - Привет в зашифрованном виде (Фхнжйч) с шагом 5

    def encrypt(msg, shift):
    output=""
    for char in msg:
        if char == ' ':
            pass
        elif char.isupper():
            output = output + chr((ord(char) + shift - 192) % 26 + 192)
        else:
            output = output + chr((ord(char) + shift - 224) % 26 + 224)

    return output


def decrypt(msg, shift):
    res = ''
    for char in msg:
        if char == ' ':
            pass
        elif  char.isupper():
            res = res + chr((ord(char) - shift - 192) % 26 + 192)
        else:
            res = res + chr((ord(char) - shift - 224) % 26 + 224)
    return res

text = input("Введите текст для шифрации: ")
s = int(input("Введите шаг: "))
print("Зашифрованный текст:", encrypt(text, s))

s = text.encode('cp1251')
for b in s:
    print(b)

Ответы (1 шт):

Автор решения: CrazyElf
output = output + chr((ord(char) + shift - 192) % 26 + 192)
                                           ^^^    ^^   ^^^

Подсказки:

  • 26 букв в английском алфавите, а русском алфавите другое количество букв
  • вычитать и добавлять вам нужно другие числа, для этого посмотрите чему равны ord('А') и ord('а')
  • с буквой Ё будут отдельные заморочки, лучше считайте, что такой буквы просто нет в русском алфавите
→ Ссылка