Python/ django
58.9K subscribers
2.07K photos
61 videos
47 files
2.78K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🔌 python-kasaуправление умными устройствами TP-Link из Python.

Если у вас есть умные розетки, лампы или другие устройства TP-Link и вы хотели бы автоматизировать их через Python, обратите внимание на эту библиотеку. С её помощью можно легко включать/выключать устройства, проверять их статус и даже управлять через командную строку. Поддерживаются как модели Kasa, так и Tapo, включая розетки, выключатели, лампы и даже камеры.

🤖 GitHub

@pythonl
🖥 Разработка игры в стиле Mario с нуля на Python

Создание собственной игры в духе легендарного Super Mario Bros — это отличный способ прокачать навыки программирования, погрузиться в основы геймдева и просто повеселиться.

Гайд по разработке простой платформенной игры с нуля Python, используя библиотеку Pygame.

📌 Гайд

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Летняя школа бэкенда Яндекса открыла набор!

Хочешь провести лето с пользой, развивая реальные сервисы в команде с профи? Это твой шанс!

Если ты:
• Уверенно пишешь на Python, Java или C++
• Понимаешь основы алгоритмов и структур данных
— подавай заявку в Летнюю школу бэкенд‑разработки Яндекса.

🗓 Формат обучения:
• 2 июня – 27 июля — онлайн-лекции и практика
• 28 июля – 24 августа — работа над проектами (онлайн или офлайн)

💡 Что тебя ждёт:
• Реальные задачи и работа в фулстек-команде
• Наставничество от инженеров Яндекса
• Возможность получить офер: >50% выпускников становятся стажёрами или сотрудниками компании
• Нетворкинг, лекторий и крутая атмосфера

📍Участие бесплатное.
🕓 Заявки принимаются до 27 апреля. Не упусти!

🔗 Подробнее

#backend #летняяшкола #яндекс #стажировка #разработка #python #java #cplusplus
🚀 Как Duolingo ускорил микросервисы на 40% с помощью асинхронного Python 🐍

Duolingo рассказали, как им удалось значительно повысить производительность своих Python-сервисов, переведя их на async/await, и сделали это не ради хайпа, а ради экономии.

💸 Мотивация: производительность и снижение затрат
Duolingo работает с большим количеством микросервисов, обрабатывающих огромные объёмы трафика. Несмотря на высокую нагрузку, многие их Python-сервисы простаивали в ожидании I/O — например, сетевых запросов или операций с базой данных. Это означало неэффективное использование CPU, а значит — деньги на облачный хостинг тратились зря.

Асинхронный код — способ “переключаться” между задачами во время ожидания, используя CPU с большей отдачей. Именно это стало главной мотивацией: не “просто быть async”, а снизить расходы.

⚙️ Как проходила миграция
Процесс был постепенным и продуманным. Ниже ключевые шаги:

Переход не “всё или ничего”
Команда не бросалась переписывать весь сервис с нуля. Они начали с конвертации отдельных маршрутов (routes) на async def, добавляя поддержку асинхронности по частям.

Инструменты постепенно адаптировали
Библиотеки и инструменты внутри компании пришлось обновить:
свой HTTP-клиент переписали под aiohttp,
систему аутентификации сделали совместимой с async-контекстами,
логирование, трассировка и метрики обновили под async-архитектуру.

Тесты и инфраструктура
Асинхронные изменения требовали пересмотра тестов. Они внедрили поддержку pytest-asyncio и переосмыслили подход к мокам и фикстурам.

Запуск в проде — поэтапно
Сначала маршруты работали в синхронном режиме. Потом их перевели в async-режим и замерили разницу. Так удалось отловить “узкие места” до массового внедрения.

📈 Результаты: +40% производительности на инстанс
У каждого экземпляра микросервиса CPU начал использоваться эффективнее.
Снизилось среднее время ответа (latency).
Уменьшилось количество необходимых инстансов — экономия в $$$.
Код стал удобнее масштабировать и поддерживать в I/O-интенсивной среде.

Пока один запрос “ждёт”, процессор может выполнять другие задачи.

🔍 Выводы
Duolingo подчёркивает:
асинхронность не нужна “просто потому что модно”.
Но если у вас сервис с большим числом I/O-операций и важна производительность — async Python может дать реальный прирост и экономию.

Оригинальный пост

@pythonl
🚀 Автоматизируй Docker для Python за 1 команду с Python

📦 Dockerpyze — мощный опенсорс-инструмент, который превращает любой Python-проект на uv или poetry в Docker-образ без ручной возни.

💡 Просто добавь - [tool.dpy] в pyproject.toml, укажи entrypoint — и собирай образы одной командой. Без Dockerfile, без боли.

🔧 Поддерживает:
PEP-621
uv и poetry
кастомные переменные, порты и зависимости
CI/CD (в т.ч. GitHub Actions)

🔥 Подходит для быстрой упаковки ML-сервисов, REST API, CLI-инструментов и всего, что крутится на Python.

Github

#python #docker #poetry #uv #devtools #opensource #cli

@pythonl
🧠 Python-задача на внимательность и знание подводных камней

Что выведет этот код?


def make_funcs():
funcs = []
for i in range(3):
def wrapper(x=i):
return lambda: x
funcs.append(wrapper())
return funcs

a, b, c = make_funcs()
print(a(), b(), c())


Варианты ответа:

A)0 1 2
В) 2 2 2
C)0 0 0
D)Ошибка на этапе выполнения

Ответ: 0 1 2

📘 Объяснение:
🔹 Цикл for i in range(3) проходит по значениям 0, 1, 2.

🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x.

🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x.

🔹 В итоге:

a() → 0

b() → 1

c() → 2

Если бы мы не использовали x=i по умолчанию, а писали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3.


@pythonl
🐍 Задача по Python: Замыкания и области видимости

Что выведет следующий код?


def outer():
x = 5
def inner():
nonlocal x
x += 1
return x
return inner

f = outer()
print(f())
print(f())
print(f())


Варианты ответа:
A)

7
8


B)

5
5


C)

6
6


D) Ошибка выполнения

---

Правильный ответ: A

Почему:
Функция
outer создаёт замыкание. Переменная x сохраняется между вызовами f, потому что inner — замыкает x и изменяет её с помощью nonlocal. Это классический пример использования замыканий в Python.

@pythonl
Forwarded from Machinelearning
🌟 NVIDIA добавила нативную поддержку Python в CUDA.

Python уже несколько лет уверенно лидирует среди языков программирования, а теперь стал ещё ближе к железу. На GTC 2025 NVIDIA объявила о полноценной интеграции Python в свой CUDA-стек.

Это значит, что писать код для GPU можно будет напрямую на Python — без погружения в C++ или Fortran. Как подчеркнул Стивен Джонс, архитектор CUDA, цель — сделать инструмент естественным для Python-разработчиков: «Это не перевод синтаксиса C на Python. Все должно работать так, как привыкли разработчики».

Раньше CUDA требовала глубокого понимания низкоуровневых языков и это здорово ограничивало аудиторию. Сейчас, когда Python стал стандартом в ML и DS, NVIDIA открывает двери для миллионов программистов. По данным The Futurum Group, в 2023 году CUDA использовали 4 миллиона человек — теперь их число может резко вырасти.

Техническая часть такая же обширная, как и ожидания этого события профессиональным сообществом.

🟢Во-первых, появилась библиотека cuPyNumeric — аналог NumPy, который переносит вычисления с CPU на GPU буквально заменой импорта.

🟢Во-вторых, CUDA Core переосмыслен для Python: здесь сделан упор на JIT-компиляцию и минимизацию зависимостей.

🟢В-третьих, добавлены инструменты для профилирования и анализа кода, а ускоренные C++-библиотеки теперь доступны из Python без потерь в производительности.

Но главное — новый подход к параллельным вычислениям. Вместо ручного управления потоками, как в C++, NVIDIA предлагает модель CuTile, которая оперирует массивами, а не отдельными элементами. Это упрощает отладку и делает код читаемым, не жертвуя скоростью. По сути, разработчики получают высокоуровневую абстракцию, скрывающую сложности железа, но сохраняющую гибкость.

Пока CuTile доступен только для Python, но в планах — расширение для C++. Это часть стратегии NVIDIA по поддержке новых языков: Rust и Julia уже на походе.

Python-сообщество уже может экспериментировать — например, интегрировать CUDA-ядра в PyTorch или вызывать привычные библиотеки. Теперь даже те, кто никогда не писал на C++, смогут использовать всю мощь GPU — осталось проверить, как это скажется на скорости создания прекрасных LLM светлого будущего.

🔜 Посмотреть полную презентацию на GTC 2025


@ai_machinelearning_big_data

#AI #ML #Python #CUDA #NVIDIA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Строковый метод translate позволяет заменять (или удалять) несколько символов строки за один проход. (Похоже на множественные вызовы метода replace.)

import string

s = "Hello, world!"
print(s.translate(str.maketrans("", "", string.punctuation)))
# Hello world


Строковый метод translate ожидает «таблицу перевода», которую мы создаем с помощью вспомогательного метода класса maketrans.

Третий аргумент (string.punctuation в примере) — это строка символов, которые мы хотим удалить.

Значение string.punctuation
(на которое указывает стрелка):
!'#$%&\'()*+,-./:;<=>?@[\\]^_{|}~`

Суть шпаргалки: Она показывает, как эффективно удалить все стандартные знаки препинания из строки в Python, используя комбинацию методов str.maketrans для создания "инструкции" по удалению и str.translate для применения этой инструкции к строке.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Аналитиков данных становится все больше, а вы до сих пор не понимаете, что это за специалисты, и чем они занимаются?

Онлайн-школа Data Science karpovꓸcourses приглашает на бесплатный вебинар, где вы не только узнаете все о востребованной профессии, но еще и поймете, подходит ли вам эта сфера, и как начать развиваться в ней!

Старт: 15 апреля в 19:00 мск.

Спикер вебинара — преподаватель karpovꓸcourses и Team lead команды продуктовой аналитики в Raiffeisen CIB — расскажет о том, какие навыки нужны для старта карьеры, и с какими задачами работают аналитики каждый день.

А в конце вебинара вас ждет бонус от школы karpovꓸcourses — карьерный гайд и промокод на скидку на обучение.

Регистрируйтесь, чтобы не упустить возможность узнать больше о профессии аналитика данных и сделать шаг к новой карьере →
https://clck.ru/3L4Y8K/?erid=2VtzqwmamE1

Реклама. ООО «Карпов Курсы», ИНН: 7811764627, erid: 2VtzqwmamE1
🧠 Влияет ли кэш CPU на производительность Python-кода?

Лукас Аткинсон провёл серию тестов, чтобы проверить, как поведение CPU-кэша влияет на время выполнения Python-кода. Результаты удивляют.

🔍 Ключевые выводы:

- Последовательный доступ к спискам быстрее, чем случайный
- При 200k элементах случайный доступ медленнее на 47%
- При 1.6M элементов — почти в 4 раза
- Python чувствителен к низкоуровневым аспектам памяти, в том числе CPU-кэшу

💡 Совет: при работе с большими объёмами данных используй последовательный доступ — это реально ускоряет код.

📖 Читать подробнее: lukasatkinson.de

@pythonl
Стартовал набор в ШАД — успейте подать заявку!

Технологии меняют нашу реальность, но за их развитием стоят люди, которые умеют находить нестандартные решения. И именно в Школе анализа данных Яндекса готовят таких специалистов! Здесь амбициозные и увлечённые студенты:

- погружаются в машинное обучение, Data Science и искусственный интеллект;
- перенимают опыт экспертов из индустрии;
- учатся решать задачи, стоящие перед ведущими IT-компаниями и исследовательскими центрами.

Учёба в ШАДе — это серьёзный вызов даже для тех, кто уже знаком с анализом данных. Поступить непросто, но если вы готовы к интенсивной нагрузке, нестандартным кейсам и полной пересборке своего мышления — это место для вас! За 2 года обучения вы получите инструменты и навыки, которые позволят работать над сложнейшими задачами индустрии, запускать собственные проекты и двигать науку вперёд.

Занятия полностью бесплатны и проходят по вечерам. Если в вашем городе нет филиала, можно учиться онлайн. Готовы бросить вызов данности? Тогда подавайте заявку до 4 мая!