Ваш ключевой переменной уже bytes
объект (str
в py2). В Py2 str
представляет собой последовательность длиной 1 str
, поэтому вам нужно ord
для преобразования в последовательность int
.
В Py3, bytes
объектами являются последовательности int
s от 0 до 255 включительно. В принципе, в Python 2 вам нужно было map(ord, key)
для преобразования из str
в последовательность (list
) из int
, в Python 3 вам вообще не нужно выполнять преобразование, если вам не нужно мутировать последовательность, и даже тогда вы можете просто сделайте bytearray(key)
, чтобы сделать изменчивую копию оригинала bytes
.
Обратите внимание, что Py2.6 + имеет bytearray
типа и он ведет себя так же, как это делает в PY3 (изменяемая последовательность int
с), так что вы, вероятно, можете написать 2/3 переносимого код, используя только bytearray(key)
везде (и он будет быстрее, чем map(ord, key)
для загрузки).
Пожалуйста, добавьте ваш код и не только одну строку. –
'ord' берет строку и возвращает' int'. 'ord ('a') -> 97' и' chr' является обратным 'chr (97) -> 'a''. Какой ты хочешь? –