TGViewer
About Python [ru] About Python [ru] @python_tesst · 6.43K subscribers
Post #2019 989
👩‍💻 Задачка по Python

Создайте Python-приложение, которое будет принимать путь к текстовому файлу и шифровать его содержимое с помощью алгоритма Цезаря (Caesar Cipher).

Программа должна уметь шифровать текст с помощью сдвига, указанного пользователем, и сохранять зашифрованное сообщение в новый файл. Программа также должна уметь расшифровывать файлы, зашифрованные с помощью того же сдвига.

➡️ Пример:

• python app.py encrypt input.txt 3 — шифрует содержимое файла input.txt со сдвигом 3 и сохраняет его в encrypted.txt.
• python app.py decrypt encrypted.txt 3 — расшифровывает файл encrypted.txt со сдвигом 3 и выводит расшифрованный текст в консоль.

Решение задачи ⬇️

import sys

def caesar_cipher(text, shift):
encrypted_text = []
for char in text:
if char.isalpha():
shift_base = 65 if char.isupper() else 97
encrypted_char = chr((ord(char) - shift_base + shift) % 26 + shift_base)
encrypted_text.append(encrypted_char)
else:
encrypted_text.append(char)
return ''.join(encrypted_text)

def encrypt_file(input_file, shift):
with open(input_file, 'r', encoding='utf-8') as file:
text =
file.read()
encrypted_text = caesar_cipher(text, shift)

with open('encrypted.txt', 'w', encoding='utf-8') as file:
file.write(encrypted_text)

print(f'Файл зашифрован и сохранен в "encrypted.txt"')

def decrypt_file(input_file, shift):
with open(input_file, 'r', encoding='utf-8') as file:
encrypted_text =
file.read()
decrypted_text = caesar_cipher(encrypted_text, -shift)

print('Расшифрованное сообщение:')
print(decrypted_text)

if __name__ == '__main__':
if len(sys.argv) != 4:
print('Используйте: python
app.py <encrypt|decrypt> <путь к файлу> <сдвиг>')
sys.exit(1)

action = sys.argv[1]
file_path = sys.argv[2]
shift = int(sys.argv[3])

if action == 'encrypt':
encrypt_file(file_path, shift)
elif action == 'decrypt':
decrypt_file(file_path, shift)
else:
print('Неизвестное действие. Используйте "encrypt" или "decrypt".')
More from @python_tesst
  1. Oct 5, 2026Post #3223
  2. Oct 5, 2026Хочешь, чтобы ИИ клепал моды или скрещивал между собой разные игры? Тогда глянь сюда: reha…
  3. Oct 5, 2026Джеффри Хинтон, Йошуа Бенджио и ещё два десятка исследователей выпустили статью про интелл…
  4. Oct 5, 2026Post #3220
  5. Oct 4, 2026Cache Control в Claude Code Советую поставить Cache Control в Claude Code. Причём настойчи…
  6. Oct 2, 2026😅 Айтишник отправил в одну компанию три одинаковых резюме и только одно дошло до финала О…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →