Курс Python → ROT13 Шифр Цезаря в Python

Шифр Цезаря — это метод шифрования, при котором каждая буква в сообщении заменяется другой буквой, находящейся на определенном расстоянии в алфавите. В данном случае используется ROT13, где каждая буква сдвигается на 13 позиций. Например, буква «A» становится «N», «B» становится «O» и так далее.

Для того чтобы расшифровать строку, зашифрованную с помощью ROT13, можно использовать модуль Python под названием this.py. Этот модуль выводит Zen of Python — набор принципов, которые руководствуют разработчиков при написании кода. Одним из них является принцип явного лучше, чем неявное.

Пример использования шифра Цезаря с помощью ROT13 в Python:


import this

def decrypt_rot13(s):
    decrypted = ""
    for char in s:
        if char.isalpha():
            shifted = ord(char) + 13
            if char.islower():
                if shifted > ord('z'):
                    shifted -= 26
            elif char.isupper():
                if shifted > ord('Z'):
                    shifted -= 26
            decrypted += chr(shifted)
        else:
            decrypted += char
    return decrypted

encrypted = "Gur Dhvpx Oebja sbeg vf gur onq pbqr"
decrypted = decrypt_rot13(encrypted)
print(decrypted)

В данном примере функция decrypt_rot13() принимает зашифрованную строку и возвращает ее расшифрованный вариант. Затем создается переменная encrypted с зашифрованной строкой, которая затем расшифровывается с помощью функции decrypt_rot13(). Результат расшифрования выводится на экран.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Создание матрицы в Python
  2. Форматирование строк в Python
  3. Автоматизация с Python
  4. Статическая типизация в Python
  5. Сортировка и обратный порядок
  6. Форматирование строк в Python
  7. Создание словаря через dict comprehension
  8. Генераторы в Python
  9. Итерации в Python
  10. Оператор is в Python
  11. Функции с необязательными аргументами
  12. Расчет времени выполнения кода
  13. Функция zip() — объединение последовательностей
  14. Python Тесты и Гайды
  15. Оператор «or» в Python
  16. Переопределение метода __eq__
  17. Использование модуля __future__
  18. Библиотека itertools: объединение списков
  19. Создание уникального множества
  20. Генерация строк с .join()
  21. Изменение переменной в Python: nonlocal
  22. Подсчет элементов в списке с Counter
  23. Concrete Paths в Python
  24. Создание пар из последовательностей
  25. Библиотека funcy: удобные утилиты
  26. Очистка данных с помощью pandas
  27. Функция zip() в Python
  28. Константы в модуле cmath
  29. Декораторы в Python
  30. Объединение словарей в Python
  31. Разделение строки с помощью re.split()
  32. Метод init в Python
  33. Управление асинхронными задачами на Python.
  34. Объединение, распаковка и деструктуризация
  35. Получение списка кортежей из словаря
  36. enumerate() в Python для работы с индексами
  37. Работа с комплексными числами
  38. Экспорт данных с помощью writefile
  39. Декоратор проверки активности
  40. Оператор Walrus в Python
  41. Нахождение пересечения множеств
  42. Проверка дубликатов в Python
  43. Измерение времени выполнения кода с использованием time
  44. Метод join для наборов
  45. Справка по импортированным модулям

Marketello читают маркетологи из крутых компаний