This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий на GitHub настоящая находка для каждого дата-сайентиста
DS Interactive Python — это репозиторий с интерактивными дашбордами для изучения статистики, моделей машинного обучения и других концепций Data Science.
Темы включают: PCA, бэггинг и бустинг, кластеризацию, нейронные сети и др.
Полностью open-source и бесплатен😮
👉 @PythonPortal
DS Interactive Python — это репозиторий с интерактивными дашбордами для изучения статистики, моделей машинного обучения и других концепций Data Science.
Темы включают: PCA, бэггинг и бустинг, кластеризацию, нейронные сети и др.
Полностью open-source и бесплатен
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:
Используйте команду
Она быстро показывает:
> какие пакеты от него зависят
> почему пакет был установлен
На примере показано, как команда
помогает понять, почему библиотека pydantic присутствует в проекте и кто её тянет в зависимости.
Это очень полезно перед очисткой📝
👉 @PythonPortal
Используйте команду
poetry show --tree --why [package]
, чтобы отследить, откуда берётся пакет.Она быстро показывает:
> какие пакеты от него зависят
> почему пакет был установлен
На примере показано, как команда
poetry show --tree --why pydantic
помогает понять, почему библиотека pydantic присутствует в проекте и кто её тянет в зависимости.
Это очень полезно перед очисткой
pyproject.toml
или при разрешении конфликтов транзитивных зависимостей. Please open Telegram to view this post
VIEW IN TELEGRAM
Основатель школы автотестировщиков QA.GURU проводит бесплатный интенсив «Из баг-репортов до первого автотеста на Python»
🔜 Во вторник, 24 июня, в 12:00 по МСК. Бесплатно.
Вы начинающий автоматизатор или ручной тестировщик? Займите место сейчас▶
За несколько часов опытный инженер объяснит, как написать и запустить автотест🤓
Что сделаете за занятие:
— Напишете свой автотест на Python с нуля.
— Настроите рабочую среду за 10 минут (и она реально будет работать).
— Разберётесь, когда использовать Selenium, Playwright или Selene.
— Запустите автотест с Pytest и без него.
И совсем немного о трендах QA:
— Зачем компаниям QA, которые умеют писать код.
— Python + автотесты как минимальный входной билет в индустрию.
— Нейросети: конкурент или ассистент?
Станислав Васенков, основатель школы — в прошлом — Head of QAA pflb.ru, автор allure-notifications, победитель хакатона от EPAM, спикер Heisenbug.
Занять место▶
Реклама. Рекламодатель: ИП Васенков Станислав Олегович, ИНН 774335827403, erid: 2Vtzqw51r9U
Вы начинающий автоматизатор или ручной тестировщик? Займите место сейчас
За несколько часов опытный инженер объяснит, как написать и запустить автотест
Что сделаете за занятие:
— Напишете свой автотест на Python с нуля.
— Настроите рабочую среду за 10 минут (и она реально будет работать).
— Разберётесь, когда использовать Selenium, Playwright или Selene.
— Запустите автотест с Pytest и без него.
И совсем немного о трендах QA:
— Зачем компаниям QA, которые умеют писать код.
— Python + автотесты как минимальный входной билет в индустрию.
— Нейросети: конкурент или ассистент?
Станислав Васенков, основатель школы — в прошлом — Head of QAA pflb.ru, автор allure-notifications, победитель хакатона от EPAM, спикер Heisenbug.
Занять место
Реклама. Рекламодатель: ИП Васенков Станислав Олегович, ИНН 774335827403, erid: 2Vtzqw51r9U
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хочешь стать скилловым бэкенд-разработчиком, то пили как можно больше проектов.
В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.
Прокачаешь бэкенд на практике с Python, Django и PostgreSQL😄
👉 @PythonPortal
В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.
Прокачаешь бэкенд на практике с Python, Django и PostgreSQL
Please open Telegram to view this post
VIEW IN TELEGRAM
Возможность Python, которую часто недооценивают -> операции над множествами
Вот пример, как можно удалять или обновлять теги, приводя старые и новые значения к множествам, а затем выполняя операции над множествами
Очистка и приведение к множествам:
🔸
🔸
🔸
Удаление существующих тегов:
Добавление новых тегов (без дубликатов):
👉 @PythonPortal
Вот пример, как можно удалять или обновлять теги, приводя старые и новые значения к множествам, а затем выполняя операции над множествами
Очистка и приведение к множествам:
existing = {t for tag in old_tags if (t := tag.strip())}
incoming = {t for tag in new_tags if (t := tag.strip())}
tag.strip(
) удаляет пробелы с начала и конца строки.t := tag.strip()
сохраняет очищенное значение в переменную t.if (t := tag.strip())
фильтрует пустые строки ("").Удаление существующих тегов:
updated = existing - incoming
print("Removed tags:", updated)
Добавление новых тегов (без дубликатов):
updated = existing | incoming
print("Added tags:", updated)
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хочешь вкатиться в ML, а не просто читать теорию, начинай с практики прямо в браузере.
В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.
Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.
Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy😊
👉 @PythonPortal
В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.
Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.
Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy
Please open Telegram to view this post
VIEW IN TELEGRAM
Конструкции в Python, использующие блок
🔸 Условный оператор
🔸 Цикл
🔸 Цикл
🔸 Блок
На фото мы видим 4 примера:
1. проверяет условие. Если
2. Цикл ищет
> Блок else выполняется только если цикл не прерван через
3. Цикл отрабатывает до конца,
>
4. Пытается выполнить 10 / 2. Исключения нет — срабатывает
>
👉 @PythonPortal
else
:if-else
for-else
while-else
try-except-else
На фото мы видим 4 примера:
1. проверяет условие. Если
x < 5
— выполняется if
, иначе — else
2. Цикл ищет
i == 10
. Не находит, break не срабатывает → выполняется else
> Блок else выполняется только если цикл не прерван через
break
3. Цикл отрабатывает до конца,
else
выполняется после завершения while
>
else
не выполнится, если внутри цикла будет break
4. Пытается выполнить 10 / 2. Исключения нет — срабатывает
else
>
else
выполняется только если не было исключений в try
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на библиотеку art — делает ASCII-арт из текста за секунды.
Простая установка:
Пример использования:
Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах😊
👉 @PythonPortal
Простая установка:
pip install art
Пример использования:
from art import text2art
Art = text2art("art") # шрифт по умолчанию
print(Art)
# Пример вывода:
# _
# __ _ _ __ | |_
# / _` || '__|| __|
# | (_| || | | |_
# \__,_||_| \__|
Art_block = text2art("art", font='block', chr_ignore=True)
print(Art_block)
# Выведет крупный блок‑текст
Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах
Please open Telegram to view this post
VIEW IN TELEGRAM
Аналогично Unix-пайпам, в Python можно строить цепочки функций, переопределяя метод
Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции
Именно так LangChain реализует элегантные пайплайны вроде:
Пример:
🔸
🔸
🔸
Теперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:
👉 @PythonPortal
__or__
Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции
Именно так LangChain реализует элегантные пайплайны вроде:
chat_prompt | groq_model | output_parser
Пример:
class Pipe:
def __init__(self, func):
self.func = func
def __call__(self, x):
return self.func(x)
def __or__(self, other):
return self.__class__(lambda x: other(self(x)))
Pipe
— обёртка над функцией__or__
(|) позволяет комбинировать пайпами, как в Unix__call__
делает объект вызываемым, как обычную функциюТеперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:
double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)
pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Буквально за считанные минуты собери умного чат-бота для своего сайта
Firecrawl только что выкатили Firestarter — полноценную платформу для чат-ботов, которая:
🔸 Скрейлит твой сайт
🔸 Индексирует контент
🔸 Разворачивает чат-интерфейс с поддержкой RAG и API в стиле OpenAI
Полностью open-source - ccылка
Попробуйте: ссылка
👉 @PythonPortal
Firecrawl только что выкатили Firestarter — полноценную платформу для чат-ботов, которая:
Полностью open-source - ccылка
Попробуйте: ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Pytest:
Используйте пользовательские маркеры
Это упрощает организацию и запуск определённых групп тестов
В примере на изображении используются два пользовательских маркера:
🔹
– Применён к тесту для замера производительности
🔹
– Применён к тестам для работы с базой данных
Мы можем запускать выборочно, например тесты, помеченные маркером
👉 @PythonPortal
Используйте пользовательские маркеры
pytest
, чтобы добавлять метаданные к тестам.Это упрощает организацию и запуск определённых групп тестов
В примере на изображении используются два пользовательских маркера:
@pytest.mark.performance
– Применён к тесту для замера производительности
test_page_load_time
@pytest.mark.database
– Применён к тестам для работы с базой данных
test_database_connection
и test_data_integrity
Мы можем запускать выборочно, например тесты, помеченные маркером
@pytest.mark.database
pytest -m database
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Я только сегодня узнал об этом трюке с GitHub
Просто введите
Такой простой способ сэкономить время🤯
👉 @PythonPortal
Просто введите
repo.new
в адресной строке браузера — и сразу откроется страница создания нового репозитория на GitHub.Такой простой способ сэкономить время
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:
Знаете ли вы, что можно задать максимальную длину списка, используя deque из модуля collections?
Класс
В приведённом примере📖
👉 @PythonPortal
deque.maxlen
Знаете ли вы, что можно задать максимальную длину списка, используя deque из модуля collections?
Класс
deque
(двусторонняя очередь) из модуля collections поддерживает параметр maxlen
, который устанавливает максимальный размер очереди. Когда очередь достигает этого размера, добавление новых элементов автоматически удаляет элементы с противоположного конца, реализуя поведение "первым пришёл — первым ушёл" (FIFO) с ограничением по размеру.В приведённом примере
deque
имеет максимальную длину 3. При добавлении значения 4 удаляется 1, что делает такую структуру идеальной для реализации скользящего окна последних трёх элементов Please open Telegram to view this post
VIEW IN TELEGRAM
Numpy CheatSheet.pdf
9 MB
Это шпаргалка по библиотеке NumPy
Краткое руководство по основным операциям и функциям для работы с массивами в Python.😄
👉 @PythonPortal
Краткое руководство по основным операциям и функциям для работы с массивами в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Это что игра What It Prints?
Да, это онлайн-игра‑головоломка для разработчиков и студентов, где нужно угадать, что выведет код. Простая и увлекательная: показывается фрагмент, а вы должны определить его вывод
Для самопроверки самое то💯
👉 @PythonPortal
Да, это онлайн-игра‑головоломка для разработчиков и студентов, где нужно угадать, что выведет код. Простая и увлекательная: показывается фрагмент, а вы должны определить его вывод
Для самопроверки самое то
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Auto PY to EXE — это open-source инструмент для упаковки Python-проектов в исполняемые файлы, который гораздо проще в использовании, чем pyfuze
Он предоставляет наглядный графический интерфейс: просто выбираешь скрипт, настраиваешь нужные параметры и нажимаешь кнопку запуска —> весь процесс упаковки проходит без необходимости возиться с командной строкой.
Дополнительно можно сохранять часто используемые настройки, отслеживать процесс в реальном времени и просматривать подробные логи.📖
Инструмент кроссплатформенный, поддерживает Windows, macOS и Linux, а установка через pip максимально простая:
👉 @PythonPortal
Он предоставляет наглядный графический интерфейс: просто выбираешь скрипт, настраиваешь нужные параметры и нажимаешь кнопку запуска —> весь процесс упаковки проходит без необходимости возиться с командной строкой.
Дополнительно можно сохранять часто используемые настройки, отслеживать процесс в реальном времени и просматривать подробные логи.
Инструмент кроссплатформенный, поддерживает Windows, macOS и Linux, а установка через pip максимально простая:
pip install auto-py-to-exe
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование контекстного менеджера как таймера
Большинство разработчиков ассоциируют контекстные менеджеры (with-выражение) только с работой с файлами. Но на самом деле этот паттерн решает более общую задачу.
Контекстные менеджеры идеально подходят для управления любыми ресурсами, у которых есть чёткий момент начала и завершения. Например:
• File I/O
• Сессии логирования
• Транзакции в базе данных
• Сетевые и БД-соединения
• Замер производительности
• Управление потоками и блокировками
Вместо того чтобы вручную замерять время до и после блока кода, можно использовать контекстный менеджер — это чистое и питоничное решение.
Обычно контекстный менеджер реализуется как класс с методами
Но есть более лаконичный способ — использовать декоратор
Пример как использовать контекстный менеджер как таймер прикрепил✌️
👉 @PythonPortal
Большинство разработчиков ассоциируют контекстные менеджеры (with-выражение) только с работой с файлами. Но на самом деле этот паттерн решает более общую задачу.
Контекстные менеджеры идеально подходят для управления любыми ресурсами, у которых есть чёткий момент начала и завершения. Например:
• File I/O
• Сессии логирования
• Транзакции в базе данных
• Сетевые и БД-соединения
• Замер производительности
• Управление потоками и блокировками
with
гарантирует, что инициализация и очистка ресурса будут выполнены автоматически, даже если в блоке возникнет исключение. Это делает код чище и надёжнее.Вместо того чтобы вручную замерять время до и после блока кода, можно использовать контекстный менеджер — это чистое и питоничное решение.
Обычно контекстный менеджер реализуется как класс с методами
__enter__
и __exit__
Но есть более лаконичный способ — использовать декоратор
@contextmanager
из модуля contextlib, чтобы писать генераторные менеджеры без лишнего шаблонного кода.Пример как использовать контекстный менеджер как таймер прикрепил
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ-10 распространённых магических методов в Python
👉 @PythonPortal
__init__(self)
– Инициализация нового объекта__str__(self
) – Строковое представление__repr__(self)
– Представление для отладки__len__(self)
– Длина объекта__getitem__(self, key)
– Доступ к элементу по индексу/ключу__setitem__(self, key, value)
– Установка значения по индексу/ключу__delitem__(self, key)
– Удаление элемента по ключу__eq__(self, other)
– Проверка на равенство__add__(self, other)
– Поведение оператора сложения +
__call__(self, ...)
– Делает экземпляр вызываемым как функцияPlease open Telegram to view this post
VIEW IN TELEGRAM