Создайте 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('Используйте: pythonapp.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".')
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы рассмотрим основные принципы работы жадных алгоритмов, их преимущества и недостатки, а также разберем несколько практических примеров их применения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Краткая инструкция по публикации Python-пакетов на PyPI. Узнайте, как структурировать проект, настроить метаданные и загрузить свой пакет в репозиторий.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🕵️ 5 лучших Python инструментов для специалистов по кибербезопасности
В данной статье представлен обзор пяти высокоэффективных инструментов на базе языка Python, применяемых в сфере информационной безопасности. Рассматриваются их ключевые функции и области применения.
Читать...
В данной статье представлен обзор пяти высокоэффективных инструментов на базе языка Python, применяемых в сфере информационной безопасности. Рассматриваются их ключевые функции и области применения.
Читать...
Что будет выведено в консоль при выполнении следующего кода?
class A:
def __init__(self):
self.value = 5
def __add__(self, other):
return A()
a = A()
b = A()
c = a + b
c.value = 10
print(a.value)
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассматривается, как TortoiseORM упрощает работу с базами данных в асинхронных Python-приложениях. Обсуждаются её преимущества перед другими ORM, такими как SQLAlchemy и Peewee, а также особенности интеграции асинхронности.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье обсуждаются ключевые моменты работы с SQLAlchemy: управление сессиями, безопасное добавление данных и извлечение записей с использованием сложных фильтров. Читатели научатся уверенно работать с табличными базами данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Решаем одну из самых популярных на Stack Overflow задач с помощью алгоритма сверки множеств, симметрических функций и уравнения k-й степени.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В эпоху информационного изобилия веб-скрапинг стал незаменимым инструментом для извлечения ценных данных из интернета. Но с какого фреймворка начать свой путь? Scrapy и Crawlee – два достойных кандидата, и сегодня мы поможем вам сделать правильный выбор!
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Следуя нашему пошаговому руководству, вы сможете автоматически транскрибировать аудио и добавлять субтитры к своим видео всего за несколько минут.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается о том, как Wolfram решает задачи с помощью алгоритмов и языковых моделей. Раскрываются принципы перевода неподготовленной информации в формат, который система может обработать и решить.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте Python-приложение, которое принимает путь к текстовому файлу и определяет, является ли его содержимое палиндромом построчно. Программа должна сохранять результаты проверки (является строка палиндромом или нет) в новый файл
results.txt
.•
python app.py check_palindrome input.txt
— проверяет каждую строку файла input.txt и сохраняет результат в results.txt.Решение задачи
import sys
def is_palindrome(line):
stripped_line = ''.join(char.lower() for char in line if char.isalnum())
return stripped_line == stripped_line[::-1]
def check_palindrome(input_file):
with open(input_file, 'r', encoding='utf-8') as file:
lines = file.readlines()
results = []
for line in lines:
line = line.strip()
result = 'палиндром' if is_palindrome(line) else 'не палиндром'
results.append(f'"{line}" — {result}')
with open('results.txt', 'w', encoding='utf-8') as result_file:
result_file.write('\n'.join(results))
print('Результаты проверки сохранены в "results.txt"')
if __name__ == '__main__':
if len(sys.argv) != 3:
print('Используйте: pythonapp.py check_palindrome <путь к файлу>')
sys.exit(1)
action = sys.argv[1]
file_path = sys.argv[2]
if action == 'check_palindrome':
check_palindrome(file_path)
else:
print('Неизвестное действие. Используйте "check_palindrome".')
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья рассказывает, как ORM соединяет объектно-ориентированные языки с SQL, создавая запросы без потери возможностей. Также рассматривается, как ORM упрощает работу с данными по сравнению с NoSQL хранилищами.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
За годы общения с людьми, которые только начинают свой путь в Python, я уже привык видеть одни и те же совершаемые ими ошибки при освоении этого прекрасного и обманчиво-легкого языка. В данной статье хочу показать самые частые из подобных ошибок и дать советы по их решению.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы рассмотрим 4 ИИ-инструмента, которые расширяют возможности разработчика: от платформ для работы с документами до агентов, способных исправлять ошибки в коде.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье узнаем, где применяются хэш-карты и как их реализовать в Python с помощью словарей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Декораторы — это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, изменяя или дополняя её поведение. Они часто используются для добавления функционала, такого как логирование, кэширование или проверка прав доступа.
def decorator(func):
def wrapper():
print("Функция вызвана")
return func()
return wrapper
@decorator
def say_hello():
print("Привет!")
say_hello()
# Функция вызвана
# Привет!
Please open Telegram to view this post
VIEW IN TELEGRAM
Узнаем, почему эта библиотека стала незаменимой в 30% Python-проектов и как она упрощает работу с данными. От базовых концепций до продвинутых техник – мы охватим всё, что нужно знать современному Python-разработчику.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье попробуем разобраться, какие возможности действительно предоставляют фреймворки, рассмотрим механизмы безопасности и способы их настройки на примере распространенных фреймворков: Django, FastAPI и Flask.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM