Совет по Python:
Использование
Метод
Хороший вопрос. Думаю, основное различие в том, что с
👉 @PythonPortal
Использование
setdefault
Метод
setdefault()
позволяет заменить 4 строки традиционного кода, избавляя от необходимости использовать условие if и ручную инициализацию.setdefault()
чётко передаёт намерение: «Если ключ отсутствует, установить для него пустой список. Затем добавить элемент в список». Это одновременно делает код короче и понятнее Есть ли причины использовать это вместо collections.defaultdict?🤔
Хороший вопрос. Думаю, основное различие в том, что с
setdefault
можно указывать разное значение по умолчанию при каждом вызове, тогда как у defaultdict
одно общее значение для всех отсутствующих ключей. Метод setdefault
также удобен тем, что не требует импорта =)Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥9❤7
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
❤19👍8🔥5🏆1
Совет по 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
👍22❤9🔥4
Основатель школы автотестировщиков 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
❤7👍2💊1
Если хочешь стать скилловым бэкенд-разработчиком, то пили как можно больше проектов.
В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.
Прокачаешь бэкенд на практике с Python, Django и PostgreSQL😄
👉 @PythonPortal
В этом курсе их три: генератор блогов, клон Netflix и клон Spotify.
Прокачаешь бэкенд на практике с Python, Django и PostgreSQL
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥15❤10💊3
Возможность 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
🔥20👍6❤4🤯3👀1
Если хочешь вкатиться в ML, а не просто читать теорию, начинай с практики прямо в браузере.
В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.
Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.
Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy😊
👉 @PythonPortal
В этом курсе всё: туториалы, Colab-ноутбуки и реальные примеры.
Будешь тренировать модели на Python с TensorFlow, визуализировать в TensorBoard и деплоить хоть в браузер, хоть на сервер.
Подходит и для новичков, и для тех, кто уже пробовал Keras или NumPy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍7🔥3💊1
Конструкции в 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
❤39👍13🔥6🏆1
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
❤52👍16🔥11😁3
Аналогично 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
👍30❤15🏆4🔥2
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
👍21🔥4🤝3❤1💊1
Совет по 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
👍20❤7🔥7🏆1
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
👍43❤12🤔5🏆2
Совет по 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
❤35👍22🤯8🏆1
Numpy CheatSheet.pdf
9 MB
Это шпаргалка по библиотеке NumPy
Краткое руководство по основным операциям и функциям для работы с массивами в Python.😄
👉 @PythonPortal
Краткое руководство по основным операциям и функциям для работы с массивами в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤11🏆3
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
👍42🔥7😢5❤4
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
👍46🔥13❤7
Использование контекстного менеджера как таймера
Большинство разработчиков ассоциируют контекстные менеджеры (with-выражение) только с работой с файлами. Но на самом деле этот паттерн решает более общую задачу.
Контекстные менеджеры идеально подходят для управления любыми ресурсами, у которых есть чёткий момент начала и завершения. Например:
• File I/O
• Сессии логирования
• Транзакции в базе данных
• Сетевые и БД-соединения
• Замер производительности
• Управление потоками и блокировками
Вместо того чтобы вручную замерять время до и после блока кода, можно использовать контекстный менеджер — это чистое и питоничное решение.
Обычно контекстный менеджер реализуется как класс с методами
Но есть более лаконичный способ — использовать декоратор
Пример как использовать контекстный менеджер как таймер прикрепил✌️
👉 @PythonPortal
Большинство разработчиков ассоциируют контекстные менеджеры (with-выражение) только с работой с файлами. Но на самом деле этот паттерн решает более общую задачу.
Контекстные менеджеры идеально подходят для управления любыми ресурсами, у которых есть чёткий момент начала и завершения. Например:
• File I/O
• Сессии логирования
• Транзакции в базе данных
• Сетевые и БД-соединения
• Замер производительности
• Управление потоками и блокировками
with
гарантирует, что инициализация и очистка ресурса будут выполнены автоматически, даже если в блоке возникнет исключение. Это делает код чище и надёжнее.Вместо того чтобы вручную замерять время до и после блока кода, можно использовать контекстный менеджер — это чистое и питоничное решение.
Обычно контекстный менеджер реализуется как класс с методами
__enter__
и __exit__
Но есть более лаконичный способ — использовать декоратор
@contextmanager
из модуля contextlib, чтобы писать генераторные менеджеры без лишнего шаблонного кода.Пример как использовать контекстный менеджер как таймер прикрепил
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29❤12🔥4
Топ-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
🤝30❤23👍15🤣5🔥1
Совет по Python:
Функция
Встроенная функция locals() возвращает словарь, представляющий текущую локальную таблицу символов.
Таблица символов — это структура, в которой Python хранит все имена (переменные, функции, классы и т.д.), доступные в определённой области видимости.
Когда
В примере переменные
👉 @PythonPortal
Функция
locals()
Встроенная функция locals() возвращает словарь, представляющий текущую локальную таблицу символов.
Таблица символов — это структура, в которой Python хранит все имена (переменные, функции, классы и т.д.), доступные в определённой области видимости.
Когда
locals()
вызывается внутри функции, она возвращает словарь со всеми локальными переменными, определёнными в рамках этой функции.В примере переменные
z
и x
определены локально внутри функции. Переменная y = 20
является глобальной и не относится к области видимости my_func(). Поэтому locals() внутри my_func
не включает y
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52❤15🔥3🤔3