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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Задачка по Python

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

➡️ Пример:

[10, 20, 4, 45, 99]
45

[5, 5, 5]
None


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

def find_second_largest(numbers):
# Удаляем дубликаты и сортируем список в порядке убывания
unique_numbers = sorted(set(numbers), reverse=True)
# Если уникальных чисел меньше двух, возвращаем None
return unique_numbers[1] if len(unique_numbers) >= 2 else None

# Пример использования:
print(find_second_largest([10, 20, 4, 45, 99])) # Ожидаемый результат: 45
print(find_second_largest([5, 5, 5])) # Ожидаемый результат: None
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Укрощение монстров: мониторинг и управление ресурсоемкими запросами в Django + PostgreSQL

Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.

Читать...
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 = '
[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
🔎 Подборка вакансий для джунов

Python-разработчик (Junior/Middle)
🟢Python, GPT, AI, Web3, SQL
🟢от 1 500 до 3 100 $ | Опыт работы: 1–3 года

Junior Python Developer
🟢Python, PostgreSQL, Redis, Go, AWS
🟢Уровень дохода не указан | Опыт работы: 1–3 года

Computer Vision Engineer (Junior/Junior+)
🟢Python, PyTorch, OpenCV, Machine Learning, Deep Learning, Git
🟢от 115 000 до 200 000 ₽ | Опыт работы: 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Бот для создания стикеров и мемов на Python

Разбираемся, как с помощью Python и библиотеки Pillow сделать Telegram-бота, который мгновенно превращает изображения в мемы или стикеры. Отличный инструмент для быстрой и забавной реакции в чатах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое yield from в Python и зачем он нужен?

В Python yield from используется для делегирования генератору, позволяя передавать управление и данные другому генератору без явного цикла for. Это делает код короче, читабельнее и эффективнее при работе с итераторами.

➡️ Пример:

def sub_generator():
yield "Первый"
yield "Второй"

def main_generator():
yield "Начало"
yield from sub_generator() # Делегируем выполнение
yield "Конец"

for item in main_generator():
print(item)


🗣️ yield from sub_generator() передаёт управление sub_generator(), избавляя от явного цикла.


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

SDET Python
Python, Selenium
Уровень дохода не указан | от 1 года опыта

QA Automation Engineer (Python)
Python, PyTest, SQL, NoSQL, Kafka, GitLab
Уровень дохода не указан | от 1 года опыта

Python developer
Python, JavaScript (React), pandas, sklearn, matplotlib, numpy, SQL, PostgreSQL, Cassandra, Git, GitLab
Уровень дохода не указан | от 1 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Эксперимент: даём ChatGPT полный доступ к компьютеру

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

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

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

➡️ Пример:

python app.py count "Hello, World!" — выводит количество каждого символа и сохраняет в char_count.json.

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

import json
import sys
from collections import Counter

def count_chars(text):
count = Counter(text)
print(count)
with open('char_count.json', 'w') as f:
json.dump(count, f)

if __name__ == "__main__":
if len(sys.argv) > 1:
count_chars(sys.argv[1])
else:
print("Укажите строку для подсчета символов.")
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как создать свой реестр для хостинга Docker-контейнеров

Хочешь полностью контролировать свои Docker-образы? Мы расскажем, как создать и настроить личный реестр контейнеров, идеально подходящий для твоих задач.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Погружение в мир диффузионных моделей — путеводитель для новичков

Разбираемся в основах диффузионных моделей: принципы работы, отличия от GAN и автоэнкодеров. В статье три подхода к изучению – теория, практика и продвинутый уровень.

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

Senior Backend Developer (Python)
Python, FastAPI, Django, PostgreSQL
от 200 000 ₽ | 3–6 лет

Senior Python Backend Developer
Python, Django, FastAPI, PostgreSQL, Docker, Apache Kafka
от 300 000 ₽ | 3–6 лет

Python QA Automation Developer
Python, Linux, HTTP, TCP, CI/CD
до 5 000 $ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене

Поговорим о создании пайплайна для обучения нейросетей, сражающихся на арене. Узнайте, как шаг за шагом построить процесс, и попробуйте обучить собственного чемпиона. Подробности и код на GitHub!

Читать...
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
👩‍💻 Возможности функции scatterplot() библиотеки seaborn

Статья объясняет использование функции scatterplot() из seaborn для визуализации взаимосвязи числовых переменных. Рассказывается о параметрах настройки цвета, размера и стиля точек, что помогает в многомерном анализе данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

Статья объясняет, как создать приложение для автоматического анализа онлайн-встреч. Используя API BotHub (Whisper-1 + Claude 3.5 Sonnet), вы научитесь извлекать ключевые идеи, распределять задачи и генерировать отчёты в формате PDF.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Чередуй сложные и лёгкие задачи

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

👉 Совет: чередуй тяжёлые задачи с более простыми и рутинными. Например, после часа разбора сложного бага переключись на форматирование кода, документацию или мелкие исправления. Это помогает мозгу «переключаться» и не перегружаться.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Кастомизация Django Admin. Часть 1: Структура шаблонов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Состояние производительности Python 3.13: Free-Threading

Статья посвящена новому free-threaded режиму в CPython 3.13, который открывает возможности параллельного выполнения потоков. Рассматриваются особенности его использования и влияние на производительность.

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