Написать две функции, первая которая в качестве аргументов будет получать ключ
7 Просмотров
Задание:
Написать две функции, первая которая в качестве аргументов будет получать ключ а сообщение и зашифрововать шифром цезаря, а другая принимать такие-же аргументы и дешифрововать. Язык программирования Python.
Ответ на задание:
Шифр Цезаря на Python
Функция шифрования:
def encrypt_caesar(text, key): """ Шифрует текст с помощью шифра Цезаря. Args: text: Текст для шифрования. key: Ключ шифрования (число). Returns: Зашифрованный текст. """ alphabet = "абвгдеёжзиклмнопрстуфхцчшщъыьэюя" cipher_text = "" for char in text: if char in alphabet: index = alphabet.find(char) new_index = (index + key) % len(alphabet) cipher_text += alphabet[new_index] else: cipher_text += char return cipher_text # Пример использования text = "Привет, мир!" key = 3 encrypted_text = encrypt_caesar(text, key) print(f"Зашифрованный текст: {encrypted_text}")
Функция дешифрования:
def decrypt_caesar(text, key): """ Дешифрует текст с помощью шифра Цезаря. Args: text: Текст для дешифрования. key: Ключ шифрования (число). Returns: Дешифрованный текст. """ alphabet = "абвгдеёжзиклмнопрстуфхцчшщъыьэюя" plain_text = "" for char in text: if char in alphabet: index = alphabet.find(char) new_index = (index - key) % len(alphabet) plain_text += alphabet[new_index] else: plain_text += char return plain_text # Пример использования encrypted_text = "Мхчйх, плх!" key = 3 decrypted_text = decrypt_caesar(encrypted_text, key) print(f"Дешифрованный текст: {decrypted_text}")
Объяснение:
- Функции
encrypt_caesar
иdecrypt_caesar
принимают два аргумента:text
(текст для шифрования/дешифрования) иkey
(ключ шифрования). - В обеих функциях используется переменная
alphabet
, которая содержит русский алфавит. - Цикл
for
проходит по каждому символу в тексте. - Если символ находится в алфавите, его индекс в алфавите меняется на
key
(при шифровании) или-key
(при дешифровании). - Новый индекс используется для получения нового символа из алфавита, который добавляется к зашифрованному/дешифрованному тексту.
- Символы, не найденные в алфавите, остаются неизменными.
Пример использования:
В примере использования функции encrypt_caesar
и decrypt_caesar
используются для шифрования и дешифрования текста “Привет, мир!” с ключом 3.
- Зашифрованный текст: “Мхчйх, плх!”
- Дешифрованный текст: “Привет, мир!”