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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
🔎 Подборка вакансий для лидов

Tech Lead QAA Python в 2GIS.PRO
🟢Python, Playwright, Allure TestOps, Gitlab, CI/CD, Kubernetes
🟢Уровень дохода не указан | 3–6 лет

Tech Lead (Python)
🟢Python, Django, Celery, HTTP/REST API, Sentry, ELK (Elasticsearch, Kibana), New Relic, OpenTelemetry, Docker, Kubernetes, Kafka, RabbitMQ, Grafana, Redash
🟢Уровень дохода не указан | 3–6 лет

Tech Lead Python
🟢Python, FastAPI, Flask, Django, NoSQL
🟢Уровень дохода не указан | Более 6 лет

Tech Lead (Python)
🟢Python, Linux, Nginx, Docker, Asyncio, aiohttp, Squid
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Деплой без стресса: автоматизируем процесс для Telegram-ботов

В статье рассказывается, как настроить автоматический деплой Telegram-бота на сервер с использованием GitHub Actions. Это поможет ускорить обновление кода и минимизировать ошибки при ручной загрузке.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Карьера — это не про «идеальную работу», а про опыт и умение адаптироваться

В мире, где всё меняется быстрее, чем ты успеваешь обновлять резюме, держаться за одну карьерную траекторию — всё равно что пытаться угнаться за горизонтом. Умение перестраиваться, пробовать новое и брать на себя задачи, которые немного пугают, — вот что реально важно. И это не про «выйди из зоны комфорта», а про осознанный выбор расти и не цепляться за привычное.

🎯 Что делать: пообщайся с коллегой из другой области, возьми на себя один проект вне своей зоны, попробуй новый инструмент или язык, устрой «ревизию» навыков — что сейчас реально работает на тебя, а что пора обновить? Простые шаги, но каждый — ключ к росту и новым возможностям.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка валютных вакансий

Middle Backend Developer (Python)
🟢Python, FastAPI, Tornado, PostgreSQL, SQLAlchemy, Redis, RabbitMQ, Docker, nginx, gitlab-ci
🟢от 2 000 до 3 300 $ | 3–6 лет

Python Developer (Senior/Middle)
🟢Python, Django, Django REST Framework, Django ORM, Vue.js, Git, GitLab, PostgreSQL, Linux, SQL
🟢от 1 200 $ | 3–6 лет

Senior backend developer - Python
🟢Python, PostgreSQL, Redis, FastAPI, Flask, Pyramid, SQLAlchemy, Celery, Pydantic, AWS
🟢от 4 000 $ | Более 6 лет

QA manual/Продакт Разработчик операций AI
🟢Python, SQL, Aiogram, GPT, PostgreSQL, CRM
🟢от 800 до 1 300 $ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как простая задачка поставила в тупик программистов (и как они из него выбрались)

В 2010 году пользователь Stack Overflow не справился с задачей на собеседовании. Обсуждение способов решения этого задания стало одной из самых популярных тем на платформе.

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

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

➡️ Пример:

python app.py fetch — получает данные из кэша, а если кэш истек, то заново запрашивает данные и обновляет кэш.

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

import time
import json
import requests
from pathlib import Path

CACHE_FILE = Path("cache.json")
CACHE_TTL = 60 # время жизни кэша в секундах

def update_cache():
data = requests.get("
https://api.example.com/data").json()
cache_data = {"data": data, "timestamp": time.time()}
with open(CACHE_FILE, "w") as file:
json.dump(cache_data, file)
return data

def fetch_data():
if CACHE_FILE.exists():
with open(CACHE_FILE, "r") as file:
cache = json.load(file)
if time.time() - cache["timestamp"] < CACHE_TTL:
print("Данные из кэша:", cache["data"])
return cache["data"]

print("Обновление кэша...")
return update_cache()

# Запрос кэшированных данных
fetch_data()
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Дуалистичная типовая система JavaScript VS Единая объектная система Python. Краткий обзор

Сегодня поговорим о объектах, объектной архитектуре и способах взаимодействия с ними на примере языков программирования Python и JavaScript. Получилось небольшое исследование, противопоставляющее прототипирование и ООП.

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

Создайте Python-скрипт, который читает большой текстовый файл построчно и подсчитывает количество уникальных слов в каждой строке. Скрипт должен эффективно обрабатывать большие файлы, используя поточное чтение, и выводить количество уникальных слов для каждой строки.

➡️ Пример:

python app.py analyze filename.txt — считывает файл filename.txt построчно, подсчитывает уникальные слова в каждой строке и выводит их количество в консоль.

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

import sys

def analyze_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
words = line.strip().split()
unique_words = set(words)
print(f'Строка: "{line.strip()}" - Уникальные слова: {len(unique_words)}')

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Укажите путь к файлу для анализа.")
sys.exit(1)

file_path = sys.argv[1]
analyze_file(file_path)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Стажер Python Back-end (офис)
🟢Python, Git, PostgreSQL, SQL, Linux, JavaScript
🟢Уровень дохода не указан | Без опыта

Junior Data Engineer
🟢SQL, Big Data, DWH, ETL, Airflow, Python
🟢до 130 000 ₽ | 1–3 года

Junior Python developer
🟢Python, SQL/NoSQL, BeautifulSoup, requests, pandas, Selenium, Playwright, FastAPI, pytest, unittest, Docker
🟢от 70 000 ₽ | 1–3 года

Python-разработчик (Junior - Middle)
🟢Python, Django, MySQL, Django REST Framework, Linux, Git, Vue.js, HTML, CSS
🟢от 70 000 ₽ | 1–3 года

Junior Data Analyst / Data Analyst
🟢SQL, Atlassian Jira, Atlassian Confluence
🟢от 60 000 до 110 000 ₽ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как сделать блог разработчика на GitHub Pages с помощью Django

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как работает декоратор @property в Python и зачем он нужен?

Декоратор @property в Python превращает метод класса в атрибут, позволяя работать с ним, как с обычным свойством. Это упрощает доступ к приватным данным и добавляет контроль за их валидацией и изменением.

С помощью @property можно создавать интерфейс для работы с данными объекта, защищая их от некорректных значений и обеспечивая читаемость кода.

➡️ В этом примере декоратор @property используется для создания свойства age, которое проверяет корректность введенного значения:

class Person:
def __init__(self, age):
self._age = age

@property
def age(self):
return self._age

@age.setter
def age(self, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным.")
self._age = value

p = Person(30)
p.age = 35 # Работает нормально
print(p.age) # 35
p.age = -5 # ValueError: Возраст не может быть отрицательным.


🗣 Использование @property полезно для создания аккуратного интерфейса доступа к данным с их защитой и валидацией, соблюдая при этом принципы инкапсуляции.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для мидлов

Разработчик Python (Middle)
🟢Python, Django, Django Rest Framework, Git, MongoDB, Linux
🟢от 90 000 до 150 000 ₽ | 1–3 года

Middle Python Developer
🟢Python, FastAPI, SQLAlchemy, PostgreSQL, MongoDB, Redis, Docker, GNU/Linux
🟢от 120 000 до 180 000 ₽ | 3–6 лета

Middle Python разработчик
🟢Python, aiohttp, FastAPI, PostgreSQL, MongoDB, RabbitMQ, Kafka, NumPy, OpenCV
🟢от 140 000 до 240 000 ₽ до вычета налогов | 3–6 лет

Data Engineer/Дата инженер (ученик)
🟢Python, SQL, Big Data, MLflow, NoSQL, machine learning, Hadoop, Apache Spark, Scala, Apache Kafka
🟢от 100 000 до 110 000 ₽ | Без опыта

Data Engineer / Дата-инженер
🟢Python, PySpark, SQL, Azure (ADF, SQL DB), Databricks, Power BI, Azure DevOps
🟢от 190 000 ₽ до вычета налогов | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Курс Django: Сложная форма с кастомной капчей

Делаем анкету с различными виджетами, защищаем форму с помощью капчи, автоматически отправляем данные и вложенные файлы на email.

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

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

➡️ Пример:

python monitor.py https://example.com — проверяет доступность сервера по адресу https://example.com, отправляет уведомление на почту, если сервер перестаёт отвечать, и повторно уведомляет при восстановлении работы.

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

import requests
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import sys

# Настройки для отправки уведомлений
SMTP_SERVER = '
smtp.example.com'
SMTP_PORT = 587
EMAIL = '
your-email@example.com'
PASSWORD = 'your-password'
TO_EMAIL = '
recipient@example.com'

# Функция для отправки уведомления
def send_notification(subject, message):
msg = MIMEMultipart()
msg['From'] = EMAIL
msg['To'] = TO_EMAIL
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))

with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(EMAIL, PASSWORD)
server.sendmail(EMAIL, TO_EMAIL, msg.as_string())
print(f"Уведомление отправлено: {subject}")

# Функция для проверки доступности сервера
def check_server(url):
try:
response = requests.get(url, timeout=5)
return response.status_code == 200
except requests.RequestException:
return False

# Основная функция мониторинга
def monitor(url):
server_is_down = False

while True:
is_up = check_server(url)

if is_up and server_is_down:
send_notification("Сервер восстановлен", f"Сервер {url} снова доступен.")
server_is_down = False
elif not is_up and not server_is_down:
send_notification("Сервер недоступен", f"Сервер {url} перестал отвечать.")
server_is_down = True

time.sleep(300) # Проверка каждые 5 минут

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Укажите URL сервера для мониторинга.")
sys.exit(1)

url = sys.argv[1]
monitor(url)
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Уделите внимание токенизаторам — и вот почему

Статья рассматривает особенности разработки ИИ-приложений с использованием RAG, особенно для обработки данных интернет-магазинов. Анализируется отличие статистического подхода от традиционного программирования и его влияние на разработку с LLM.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для сеньоров

Senior Python Developer (Highload, Crypto)
🟢Python 3.10-3.12, FastAPI, PostgreSQL, Redis, MongoDB, Pydantic, SQLAlchemy, Alembic
🟢до 500 000 ₽ | более 6 лет

Python Developer (Senior)
🟢Python, asyncio, aiohttp, FastAPI, PostgreSQL, Redis, Cassandra, Kafka, RabbitMQ, ElasticSearch, ClickHouse
🟢от 360 000 до 480 000 ₽ | 3–6 лет

Senior Python-разработчик
🟢Python, FastAPI, RabbitMQ, Kubernetes, PostgreSQL, asyncio, Alembic, Docker, SQLAlchemy, Git, CI/CD, S3, Airflow
🟢до 500 000 ₽ | более 6 лет

Senior Machine Learning Engineer (Computer Vision)
🟢Python, PyTorch, OpenCV, Scikit-Image, FFmpeg
🟢от 600 000 ₽ | 3–6 лет

Senior/Middle Data Scientist
🟢Python, SQL, классический ML, anti-fraud системы
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ИИ в логистике: отслеживаем транспортные средства на производственной территории с помощью нейросети

В статье описан путь от пет-проекта до системы для трекинга транспорта: нейросети, компьютерное зрение и инструменты, позволяющие «видеть» и анализировать производственные процессы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как работает __name__ == "__main__" в Python?

Конструкция if __name__ == "__main__" определяет, выполняется ли скрипт как основная программа или импортируется в качестве модуля. Это позволяет запускать код только при непосредственном запуске скрипта, исключая его выполнение при импорте.

➡️ Пример:
def greet():
print("Hello from greet!")

if __name__ == "__main__":
greet() # Этот вызов выполнится только при запуске скрипта напрямую


🗣 В этом примере greet() будет вызвана, если файл запускается напрямую. Если скрипт импортируется как модуль, greet() не вызовется, сохраняя модульную структуру кода.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM