About Python [ru]
6.2K subscribers
314 photos
1 video
1.61K 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 = '
[email protected]'
PASSWORD = 'your-password'
TO_EMAIL = '
[email protected]'

# Функция для отправки уведомления
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
👩‍💻 ИИ в логистике: отслеживаем транспортные средства на производственной территории с помощью нейросети

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

Читать...
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
👩‍💻 Как сократить время ответа в 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
👩‍💻 Зачем нужны эмбеддинги?

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка каналов IT от наших друзей:

🦥 Lazy_Programmer – Для ленивых

🎬 videos_it  — База видеоуроков по IT

🐧 Linux_Club — Для Linuxоидов

📔 BOOKS — Читать не перечитать

🇷🇺 our_computer — У нас как в СССР

🔐 LazySecurity — Канал по ИБ

🤩 iwannabeprogrammer  — IT-мемы

🔥 floppydisky — ITUMOR

📱 codebase_frontend — Красим кнопки

➡️ LazyDevOps —  Канал для дев и псов

🐈‍⬛️ LazyTester — Протестируй канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

["[email protected]", "[email protected]", "[email protected]", "[email protected]"]

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


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

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

# Пример использования:
emails = ["
[email protected]", "[email protected]", "[email protected]", "[email protected]"]
result = get_unique_domains(emails)
print(result) # Ожидаемый результат: {'
example.com', 'test.com', 'sample.com'}
Please open Telegram to view this post
VIEW IN TELEGRAM