About Python [ru]
6.36K subscribers
315 photos
1 video
1.65K links
Все о Python: алгоритмы, паттерны проектирования, задачи, нейронные сети

Канал на бирже - https://telega.in/c/python_tesst

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Задачка по 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".')
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Жадные алгоритмы: все, что нужно знать для собеседования

В этой статье мы рассмотрим основные принципы работы жадных алгоритмов, их преимущества и недостатки, а также разберем несколько практических примеров их применения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 Ваш код достоин PyPI: как правильно опубликовать Python-пакет

Краткая инструкция по публикации 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: Асинхронная ORM глазами Python-разработчика

В статье рассматривается, как TortoiseORM упрощает работу с базами данных в асинхронных Python-приложениях. Обсуждаются её преимущества перед другими ORM, такими как SQLAlchemy и Peewee, а также особенности интеграции асинхронности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Асинхронный SQLAlchemy 2: пошаговый гайд по управлению сессиями, добавлению и извлечению данных с Pydantic

В статье обсуждаются ключевые моменты работы с SQLAlchemy: управление сессиями, безопасное добавление данных и извлечение записей с использованием сложных фильтров. Читатели научатся уверенно работать с табличными базами данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Топовая задачка на Stack Overflow: как найти k пропущенных чисел в потоке данных

Решаем одну из самых популярных на Stack Overflow задач с помощью алгоритма сверки множеств, симметрических функций и уравнения k-й степени.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Scrapy VS Crawlee: сравнение фреймворков для веб-скрапинга

В эпоху информационного изобилия веб-скрапинг стал незаменимым инструментом для извлечения ценных данных из интернета. Но с какого фреймворка начать свой путь? Scrapy и Crawlee – два достойных кандидата, и сегодня мы поможем вам сделать правильный выбор!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Транскрибация видео и создание субтитров с помощью Whisper, FFmpeg и Python

Следуя нашему пошаговому руководству, вы сможете автоматически транскрибировать аудио и добавлять субтитры к своим видео всего за несколько минут.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Wolfram Natural Language Understanding или спасение для студентов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Создайте 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('Используйте: python
app.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
🖥 Готовим SQLAlchemy правильно

Статья рассказывает, как ORM соединяет объектно-ориентированные языки с SQL, создавая запросы без потери возможностей. Также рассматривается, как ORM упрощает работу с данными по сравнению с NoSQL хранилищами.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 10 основных ошибок начинающих Python-разработчиков

За годы общения с людьми, которые только начинают свой путь в Python, я уже привык видеть одни и те же совершаемые ими ошибки при освоении этого прекрасного и обманчиво-легкого языка. В данной статье хочу показать самые частые из подобных ошибок и дать советы по их решению.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 4 полезных инструмента для работы с ИИ: RAGFlow, The Pipe, UFO и SWE-agent

В этой статье мы рассмотрим 4 ИИ-инструмента, которые расширяют возможности разработчика: от платформ для работы с документами до агентов, способных исправлять ошибки в коде.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Хэш-карты: незаменимый инструмент для Python-разработчика

В этой статье узнаем, где применяются хэш-карты и как их реализовать в Python с помощью словарей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как работает механизм декораторов в Python, и для чего их можно использовать?

Декораторы — это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, изменяя или дополняя её поведение. Они часто используются для добавления функционала, такого как логирование, кэширование или проверка прав доступа.

➡️ Пример:

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
👩‍💻 Pydantic 2: Полное руководство для Python-разработчиков — от основ до продвинутых техник

Узнаем, почему эта библиотека стала незаменимой в 30% Python-проектов и как она упрощает работу с данными. От базовых концепций до продвинутых техник – мы охватим всё, что нужно знать современному Python-разработчику.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Встроенные механизмы безопасности фреймворков Python

В этой статье попробуем разобраться, какие возможности действительно предоставляют фреймворки, рассмотрим механизмы безопасности и способы их настройки на примере распространенных фреймворков: Django, FastAPI и Flask.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Создаём свой реестр данных на основе ФГИС «Аршин». Часть 1 — добавляем данные в PostgreSQL и сокращаем размер БД

Всем привет, этот практический цикл статей рассчитан на начинающих. Я решил поделиться своим опытом создания реестра данных на основе государственного. В этой статье займемся загрузкой и обработкой данных о результатах поверки средств измерений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM