Я хочу заменить каждый символ строки другим, смещенным в алфавите.В приведенном ниже примере я сдвигаюсь на 2, поэтому a -> c, b -> d и т. Д.
Я пытаюсь использовать регулярное выражение и функцию sub
для достижения этой цели, ноЯ получаю сообщение об ошибке.
У меня есть следующий код:
p = re.compile(r'(\w)')
test = p.sub(chr(ord('\\1') + 2), text)
print test
, где переменная text
- это строка ввода.
And I 'я получаю эту ошибку:
TypeError: ord () ожидал символ, но найдена строка длиной 2
Я думаю, проблема в том, что я ord
вызывается для буквенной строки "\ 1", а не для символа \w
, соответствующего регулярному выражению.Как правильно это сделать?