Курс 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. Функции all и any в Python
  2. Запуск внешнего кода в Jupyter
  3. Преобразование типов данных в set comprehension
  4. Удаление ключей из словаря
  5. Работа с аргументами командной строки
  6. Частичное совпадение ввода
  7. Запрос пароля с помощью getpass
  8. Retrying в Python: повторные вызовы
  9. Оператор zip в Python
  10. split() без разделителя
  11. Mad Libs Generator
  12. Работа со строками в Python
  13. Поиск с библиотекой Google
  14. Возврат нескольких значений
  15. Операторы сравнения в Python
  16. Комментарии в Python
  17. Метод get() для словарей
  18. Numpy: разбиение массивов
  19. Преобразование вложенного списка
  20. Метод ipow для возведения в степень
  21. Обязательные аргументы в Python
  22. Генераторы в Python
  23. Печать календаря в Python
  24. Асинхронное программирование с asyncio
  25. Основы слова
  26. Фильтрация элементов с помощью islice
  27. Работа с эмодзи в Python
  28. Создание коллекций из генератора
  29. Сортировка списка по индексам
  30. Вакансии в Nebius
  31. Использование функции enumerate()
  32. Списковое включение в Python
  33. Иерархия классов в Python
  34. Глобальные переменные в Python
  35. Руководство по Pymorphy2
  36. Сортировка HTML-элементов
  37. Избегайте использования goto
  38. Функции в Python: создание и вызов
  39. Метод enumerate() в Python
  40. Python Поверхностное Копирование
  41. Логирование с Logzero
  42. Работа с временем в Python
  43. Работа с аргументами командной строки в Python
  44. Библиотека Chartify: руководство
  45. Удаление элемента из списка
  46. Функция divmod() в Python
  47. Установка и использование Virtualenv
  48. Замена атрибута в именованном кортеже
  49. Список методов и атрибутов
  50. Передача параметров в Python

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