Курс 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. Форматирование строк с помощью f-строк
  2. Различия символов в Python
  3. Оптимизация поиска в словарях
  4. Проверка типов с использованием isinstance
  5. Делегирование в Python
  6. Работа с JSON в Python
  7. Обновление данных через PUT запрос
  8. f-строки в формате строк
  9. Анализ текста на русском языке с помощью Pymystem3
  10. split() без разделителя
  11. Поиск подстроки в строке
  12. Описание скриптов в README
  13. Проверка переменных окружения в Python
  14. Асинхронное выполнение задач в Python
  15. Обмен данными с asyncio.Queue
  16. Объединение списков в строку
  17. Сортировка с помощью параметра key
  18. Тестирование с responses
  19. Подчеркивание в REPL
  20. Сравнение строк в Python
  21. Python defaultdict добавление ключа
  22. Удаление файлов и папок в Python
  23. Многоточие в Python
  24. Операторы объединения в Python 3.9
  25. Работа с буфером обмена на Python
  26. Модуль xkcd: добавление юмора в Python
  27. Очистка списка от False, None, 0, «»
  28. Enum в Python
  29. Генерация строк с .join()
  30. Сглаживание списка
  31. Делегирование в Python
  32. Метод split() в Python
  33. Объединение словарей в Python
  34. Работа с Enum в Python3.
  35. Итерация по итерируемым объектам
  36. Цепные операции в Python
  37. Метод count() для списков
  38. Работа с датой и временем в Python
  39. Операции с датами в Python
  40. Анонимные функции в Python
  41. ChainMap.new_child() — добавление нового словаря
  42. Кортежи в Python: особенности и преимущества

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