Курс 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. Применение промокода в Много лосося
  3. Создание и обучение модели с Keras
  4. Переопределение метода __or__()
  5. Метод invert для побитового отрицания
  6. Создание словарей с defaultdict
  7. Работа с collections в Python.
  8. Форматирование данных с помощью pprint
  9. Обновление шаблона base.html
  10. Разбиение строки в Python
  11. Операторы сравнения в Python
  12. Работа с f-строками 2.0
  13. Нахождение разницы между списками в Python
  14. Работа с IP-адресами в Python
  15. Оператор continue в Python
  16. Переименование файлов в Python
  17. Работа с модулем os в Python
  18. Оператор Walrus: правильное использование
  19. Представление бесконечности в Python
  20. Основные функции и модули Python
  21. Оператор in для проверки наличия элемента
  22. Ключевое слово global в Python
  23. Доступ к локальным переменным
  24. Метод setdefault() в Python
  25. Генераторы в Python
  26. Перезагрузка оператора в Python
  27. Метод __irshift__ для побитового сдвига вправо
  28. Повторение элементов списков
  29. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  30. Работа с timedelta
  31. Сравнение строк в Python
  32. Инициализация переменных
  33. Транспонирование матрицы в Python
  34. Создание тестовых данных с Faker
  35. Сумма элементов списка
  36. Работа с географическими данными в Python
  37. Функция zip() в Python
  38. Перегрузка операторов в Python
  39. Сортировка в Python
  40. Изменения в обработке логических значений
  41. Подсчет вхождений элементов
  42. Генераторы в Python
  43. Обработка StopIteration в Python
  44. Форматирование вывода списков
  45. Конкатенация строк в Python
  46. Объединение словарей в Python
  47. Big O оптимизация

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