Курс 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. Модуль math: основные функции
  2. Декоратор для группы пользователей в Django
  3. Основы работы со строками в Python
  4. Очистка данных с Pandas
  5. Списковые включения в Python
  6. Получение списка кортежей из словаря
  7. Обработка исключений в Python
  8. Перемешивание списка с shuffle()
  9. Логирование с Logzero: ротация файла
  10. Декодирование байтов в строку
  11. Атрибуты класса и экземпляра
  12. Порядок операций в Python
  13. Нахождение максимального значения и его индекса в списке
  14. Непрерывная проверка в Python
  15. Итерация по копии коллекции
  16. Разделение строки с помощью re.split()
  17. Метод join() для объединения элементов строки
  18. Защита данных в Python
  19. Замеры производительности в Python
  20. Обновление множества в Python
  21. Разделение строки с регулярными выражениями
  22. Извлечение новостей с помощью newspaper3k
  23. Объединение списков в Python
  24. Использование html-скриптов в Jupyter Notebook
  25. Объединение словарей в Python
  26. Инициализация структур данных
  27. Быстрый поиск кода
  28. Генератор бросков кубиков
  29. Настройка нарезки списков
  30. Удаление элемента из списка в Python
  31. Генерация резюме в Gensim
  32. Непрерывная проверка в Python
  33. Атрибуты класса и экземпляра в Python
  34. Модуль itertools: комбинации и перестановки
  35. Оператор == в Python
  36. Функция divmod() в Python
  37. Возврат нескольких значений
  38. Копирование файлов с shutil()
  39. Поиск простых чисел
  40. Подсчет элементов в списке с Counter
  41. Проверка вхождения подстроки
  42. Присвоение значений переменным в Python
  43. Сохранение и загрузка модели в PyTorch
  44. Копирование объектов в Python
  45. Счетчик в Python: most_common()
  46. Копирование в Python

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