Я пытаюсь изменить строку, заменив каждый алфавит алфавитом, который находится на два положения впереди. например 'a' заменено на 'c', 'b' заменено на 'd'. Единственными исключениями являются «y», которые должны быть заменены на «a» и «z» на «b» (цикл возвращается к началу).String Manipulation Python
Я написал для него следующий код, который, кажется, служит цели, но форма форматирования вывода портит его.
string = "g fmnc wms bgblr rpylqjyrc gr zw fylb."
print string
for i in string:
if i.isalpha():
if ord(i)>120:
print chr(ord(i)-24),
else:
print chr(ord(i)+2),
else:
print i
Выход:
g fmnc wms bgblr rpylqjyrc gr zw fylb.
i h o p e y o u d i d n t t r a n s l a t e i t b y h a n d .
Ожидаемый результат:
g fmnc wms bgblr rpylqjyrc gr zw fylb.
i hope you didnt translate it by hand.
Есть ли альтернатива, быстрый подход для решения этой проблемы?
'из строки импорта translate' и использовать его. – dansalmo
благодаря сделал следующее в качестве альтернативного подхода 'intab = "АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ" outtab = "cdefghijklmnopqrstuvwxyzab" trantab = maketrans (intab, outtab) печать string.translate (trantab)' – misguided
cs50x? Действительно хороший курс :) –