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-скрипт, который проверяет доступность указанного веб-сервера и отправляет уведомление на почту, если сервер недоступен. Скрипт должен выполнять проверку каждые 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
🔎 Подборка вакансий для лидов

Team Lead backend/Python (remote)
🟢Python (синхронный и асинхронный), Pyramid, AIOHttp, SQLAlchemy, Redis, Docker, Pytest, Alembic, PostgreSQL, Vue.js
🟢Уровень дохода не указан | Опыт от 3 лет

Python Team Lead
🟢Python, Django Rest Framework, SQL, NoSQL, Celery, Docker, RabbitMQ, управление командой
🟢от 250 000 ₽ | Опыт 3–6 лет

Python-разработчик Machine Learning / Computer Vision
🟢Python, TensorFlow, PyTorch, Keras, Scikit-learn, Pandas, AWS, SQL (PostgreSQL), Apache Spark, Apache Kafka, Apache Airflow
🟢от 400 000 ₽ | Опыт 3–6 лет

Senior/Lead Backend Developer (Python)
🟢Python3, Asyncio, SQL, PostgreSQL, FastAPI, Redis, Docker, Temporal, RabbitMQ, Linux, Elasticsearch
🟢до 450 000 ₽ | Опыт 3–6 лет

Tech Lead (python)
🟢Python 3.11, MySQL, Clickhouse, Redis, Aiogram, Aiohttp, Docker-compose, Nginx, GitHub
🟢от 250 000 ₽ | Опыт более 6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как сократить время ответа в 2 раза, добавив одну строку кода

В статье рассказывается, как Okko оптимизировал рекомендации: с помощью Jaeger и Grafana выявили узкие места, улучшили работу сборщика мусора и снизили время отклика для 99% запросов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💭 Скорость — не главный показатель успеха. Гораздо важнее — чёткое понимание, куда ты идёшь.

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

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

Разработчик операций AI, Python/React
🟢Python, React, PostgreSQL, Aiogram, GPT
🟢от 800 до 1 300 USD (до вычета налогов) | 1–3 года

Senior Software Engineer (Python)
🟢Python, FastAPI, TypeScript, Node.js, React, MongoDB, PostgreSQL, RabbitMQ, Kafka, Redis, Docker, Kubernetes, AWS, Google Cloud
🟢от 2 500 до 3 500 USD (до вычета налогов) | 3–6 лет

Middle Backend Developer (Python)
🟢Python, FastAPI, Tornado, PostgreSQL, SQLAlchemy, Redis, RabbitMQ, Docker, nginx, gitlab-ci
🟢от 2 000 до 3 300 USD (до вычета налогов) | 3–6 лет

Senior Backend Developer - Python
🟢Python, PostgreSQL, Redis, FastAPI, Flask, Pyramid, SQLAlchemy, Celery, pydantic, AWS
🟢от 4 000 USD на руки | 3–6 лет

Python Fullstack Developer
🟢Python 3, FastAPI, Redis, SQL (MySQL, MariaDB), Docker, Grafana, PHP, TypeScript, React
🟢до 3 000 USD на руки | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Зачем нужны эмбеддинги?

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

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

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

➡️ Пример:

["user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]

#{"example.com", "test.com", "sample.com"}


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

def get_unique_domains(emails):
domains = {email.split('@')[1] for email in emails}
return domains

# Пример использования:
emails = ["
user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]
result = get_unique_domains(emails)
print(result) # Ожидаемый результат: {'
example.com', 'test.com', 'sample.com'}
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Файловая система без фокусов: как hard links и XOR сэкономят ваши гигабайты

Статья объясняет концепцию символьных и жёстких ссылок на файлы, акцентируя внимание на hard links в Windows, малоизвестных многим веб-разработчикам. В простых примерах раскрывается принцип работы ссылок и их отличия от привычных ярлыков.

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

Напишите функцию, которая принимает строку и проверяет, является ли она палиндромом. Функция должна игнорировать пробелы, знаки препинания и регистр букв.

➡️ Пример:

"A man, a plan, a canal, Panama"

True


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

import re

def is_palindrome(s):
# Оставляем только буквы и цифры, приводим к нижнему регистру
cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
return cleaned == cleaned[::-1]

# Пример использования:
input_string = "A man, a plan, a canal, Panama"
result = is_palindrome(input_string)
print(result) # Ожидаемый результат: True
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Python-разработчик (Junior)
🟢Python, SQL, PyCharm, Django Rest Framework, GitHub
🟢от 60 000 ₽ | Без опыта

Junior Python разработчик
🟢Python, API, PostgreSQL, MySQL, NoSQL
🟢от 30 000 до 50 000 ₽ | Без опыта

Python-разработчик (Junior)
🟢Python, SQL, FastAPI, Flask, Linux, Docker, Git, Gitlab
🟢от 75 000 ₽ | Без опыта

Разработчик нейросетевых алгоритмов/Reinforcement Learning
🟢Python, PyTorch, TensorFlow, Reinforcement Learning
🟢от 60 000 ₽ | Без опыта

Junior Data Scientist
🟢SQL, Python, Clickhouse, Apache Airflow, MS Excel, HTML
🟢Уровень дохода не указан | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Давайте-ка наваяем PumpKeen Game. Как Commander Keen, только про Pumpkin (тыкву). Хэллоуин же

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

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

Генераторные выражения — это компактный способ создания итераторов в Python. Они похожи на списковые выражения (list comprehensions), но возвращают по одному элементу за раз, а не создают сразу весь список. Это делает их более эффективными по памяти, особенно для обработки больших объемов данных.

➡️ Пример:

# Списковое выражение — создает весь список в памяти
squared_list = [x**2 for x in range(10)]
print(squared_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Генераторное выражение — возвращает по одному значению
squared_gen = (x**2 for x in range(10))
print(next(squared_gen)) # 0
print(next(squared_gen)) # 1


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


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

Data Engineer middle
🟢Python, Spark, Hadoop, Hive, Airflow, SQLAlchemy, PostgreSQL, Docker, GitLab, CI/CD, Linux
🟢от 190 000 до 270 000 ₽ | от 1 года

Data Engineer (middle)
🟢SQL, Greenplum, FormIT, Informatica, Cloud infrastructure, Yandex Cloud, IaaS, PaaS
🟢от 230 000 до 250 000 ₽ | 3–6 лет

Python-разработчик (middle, AI)
🟢Python, TensorFlow, Keras, PyTorch, scikit-learn, PostgreSQL, MongoDB, Redis, SQLAlchemy, Celery, RabbitMQ, Kafka, Docker, Google Cloud
🟢от 180 000 до 250 000 ₽ | 1–3 года

Python Developer (Middle/Middle+)
🟢Python, Django, PostgreSQL, Celery, Docker, REST, Git
🟢от 120 000 ₽ | 3–6 лет

Middle Python Developer: Backend / Server side
🟢Python, FastAPI, Flask, MariaDB, PostgreSQL, MongoDB, ElasticSearch, Docker, K8S, Git, CI/CD
🟢от 3 000 до 4 000 $ | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM