Кодирование и декодирование методом Цезаря
Эта функция позволяет кодировать и декодировать строки, сдвигая каждый символ на заданное число позиций в алфавите.
def caesar_cipher(text, shift, direction='right'):
alpha = 'abcdefghijklmnopqrstuvwxyz'
result = ''
for char in text:
if char.lower() in alpha:
start = alpha.index(char.lower())
if direction == 'right':
new_pos = (start + shift) % 26
else:
new_pos = (start - shift) % 26
new_char = alpha[new_pos]
if char.isupper():
result += new_char.upper()
else:
result += new_char
else:
result += char
return result
# Пример использования
encoded_text = caesar_cipher('Hello, World!', 3)
decoded_text = caesar_cipher(encoded_text, 3, 'left')
print('Encoded:', encoded_text)
print('Decoded:', decoded_text)
|