Пожалуйста, перестань использовать Python как 15 лет назад. Лучше начни применять эти практики
Прожми лайк, если понравилось — 👍
👉 @PythonPortal
Прожми лайк, если понравилось — 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Это гайд “Python Logging With Loguru” рассказывает о том, как упростить логирование в Python с помощью библиотеки
Примеры кода показаны для реальных задач, от простой отладки до продакшен-логирования.
Приятного изучения💪
👉 @PythonPortal
Loguru
— удобной и мощной альтернативы стандартному logging
Примеры кода показаны для реальных задач, от простой отладки до продакшен-логирования.
Приятного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование декоратора dataclass в Python
Декоратор
На фото приведены два примера. В первом мы используем декоратор
Во втором примере показано, как выглядел бы тот же код без использования декоратора
Ставь лайк если пост был полезным🪑
👉 @PythonPortal
Декоратор
dataclass
упрощает создание классов, которые в основном хранят данные. Он автоматически генерирует специальные методы, такие как __init__, __repr__
и другие. Это снижает многословность кода, сохраняя при этом его ясность и функциональность.На фото приведены два примера. В первом мы используем декоратор
dataclass
, поэтому явно не добавляем методы __init__, __repr__ и __eq__
. Они автоматически добавляются декоратором.Во втором примере показано, как выглядел бы тот же код без использования декоратора
dataclass
. Видно, что такой код гораздо длиннееСтавь лайк если пост был полезным
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся на отличную платформу для практики: Pybites Bites of Py
Это интерактивные мини-задачи (байты) по Python, которые ты решаешь прямо в браузере.
Твой код сразу тестируется
> Короткие и прикладные задачи
> Всё онлайн, ничего ставить не нужно
> Прокачка Python навыков и стандартной библиотеки
> Отлично подходит для новичков и опытных
Попробовать можно бесплатно:
-> https://pybitesplatform.com/bites/demo
👉 @PythonPortal
Это интерактивные мини-задачи (байты) по Python, которые ты решаешь прямо в браузере.
Твой код сразу тестируется
> Короткие и прикладные задачи
> Всё онлайн, ничего ставить не нужно
> Прокачка Python навыков и стандартной библиотеки
> Отлично подходит для новичков и опытных
Попробовать можно бесплатно:
-> https://pybitesplatform.com/bites/demo
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:
Чтобы посчитать количество вхождений элементов, используйте
Например у нас словарь, где ключ — это ID устройства, а значение — его производитель.
> Выполняем подсчёт:
Здесь берутся все значения из словаря (
> Выводим и получаем:
👉 @PythonPortal
Чтобы посчитать количество вхождений элементов, используйте
Counter
из модуля collections
Например у нас словарь, где ключ — это ID устройства, а значение — его производитель.
devices_vendors = {
'device001': 'Cisco',
'device002': 'Juniper',
'device003': 'Cisco',
'device004': 'Arista',
'device005': 'Cisco'
}
> Выполняем подсчёт:
vendor_counts = Counter(devices_vendors.values())
Здесь берутся все значения из словаря (
.values()
), т.е. список вендоров: ['Cisco', 'Juniper', 'Cisco', 'Arista', 'Cisco']
, и Counter считает, сколько раз каждый встретился.> Выводим и получаем:
Counter({'Cisco': 3, 'Juniper': 1, 'Arista': 1})
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно искать ключи в нескольких словарях с приоритетом?
Ручной способ поиска: сначала в
Работает, но нечитаемо и неудобно, особенно при большом количестве словарей.
Лучше используй
Создается объект ChainMap, который объединяет словари по приоритету:
Просто вызываешь
Даже если ключ есть в нескольких словарях, берётся первое вхождение по приоритету
👉 @PythonPortal
Ручной способ поиска: сначала в
group3
, если нет — в group2
, если и там нет — в group1
:age = group3.get(name, group2.get(name, group1.get(name)))
Работает, но нечитаемо и неудобно, особенно при большом количестве словарей.
Лучше используй
ChainMap
для чистой логики с подстановкой по умолчаниюm = ChainMap(group3, group2, group1)
age = m.get("ana")
Создается объект ChainMap, который объединяет словари по приоритету:
Просто вызываешь
m.get(key)
— он сам идет по цепочке, пока не найдет ключДаже если ключ есть в нескольких словарях, берётся первое вхождение по приоритету
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты каждый день используешь кучу AI-инструментов — вот штука, которая серьёзно упростит тебе жизнь.
Называется GlobalGPT
В одном месте ты получаешь доступ к: GPT-4.5, Claude 3.7, DeepSeek, MidJourney, Perplexity, Runway и другим.
Больше не нужно прыгать по вкладкам — всё в одной панели🪄
👉 @PythonPortal
Называется GlobalGPT
В одном месте ты получаешь доступ к: GPT-4.5, Claude 3.7, DeepSeek, MidJourney, Perplexity, Runway и другим.
Больше не нужно прыгать по вкладкам — всё в одной панели
Please open Telegram to view this post
VIEW IN TELEGRAM
В России теперь можно официально зарегать свои ИТ-скиллы
Минцифра запустила платформу, где любой желающий может пройти тест и получить сертификат — всё добровольно.
Результат ляжет в личный кабинет на Госуслугах и будет действовать целый год.
Уже можно подтвердить знания по Python, Java, SQL, Linux и другим технологиям.
Пройти можно тут: gosuslugi.ru/itskills🧠
👉 @PythonPortal
Минцифра запустила платформу, где любой желающий может пройти тест и получить сертификат — всё добровольно.
Результат ляжет в личный кабинет на Госуслугах и будет действовать целый год.
Уже можно подтвердить знания по Python, Java, SQL, Linux и другим технологиям.
Пройти можно тут: gosuslugi.ru/itskills
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование оператора match case
В Python 3.10 был введён оператор match case для сопоставления с образцом (pattern matching). Он предоставляет более питоничный способ обработки множества условий без использования традиционных конструкций if-else.
Выше представлен пример использования оператора
Подход с match-case более читаемый по сравнению с традиционным if, особенно при работе с большим числом условий
Ставь лайк если это полезно для тебя😈
👉 @PythonPortal
В Python 3.10 был введён оператор match case для сопоставления с образцом (pattern matching). Он предоставляет более питоничный способ обработки множества условий без использования традиционных конструкций if-else.
Выше представлен пример использования оператора
match case
для сопоставления дней недели с задачами. Например, case 'monday'
срабатывает, если значение переменной day
равно 'monday'
, и возвращает 'learn Python'
.Подход с match-case более читаемый по сравнению с традиционным if, особенно при работе с большим числом условий
Ставь лайк если это полезно для тебя
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Создай своего первого AI-агента + MCP-сервер на Python
Вот всё, что тебе нужно, чтобы собрать своего первого AI-агента меньше чем за 20 минут.
О коде, который ты здесь увидишь:
> Используется Google ADK с Gemini Flash для запуска агента
> Агент подключается к MCP-серверу
> Он также использует два кастомных инструмента для выполнения задач
> Всё, что делает агент, можно отслеживать благодаря библиотеке Opik
Вот видео — можешь смотреть бесплатно.
А вот репозиторий на GitHub с кодом💯
👉 @PythonPortal
Вот всё, что тебе нужно, чтобы собрать своего первого AI-агента меньше чем за 20 минут.
О коде, который ты здесь увидишь:
> Используется Google ADK с Gemini Flash для запуска агента
> Агент подключается к MCP-серверу
> Он также использует два кастомных инструмента для выполнения задач
> Всё, что делает агент, можно отслеживать благодаря библиотеке Opik
Вот видео — можешь смотреть бесплатно.
А вот репозиторий на GitHub с кодом
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно создать XML с помощью Python? Попробуй модуль xml. 🐍
Я предпочитаю использовать
Функция
Затем создаём элементы:
> Appointments — корневой элемент
> subAppointment — дочерний элемент, добавляется к корню
Добавляем вложенный элемент:
В
Сериализация и запись в файл:
> Создаётся дерево ElementTree из корня.
> Файл открывается в бинарном режиме записи (wb).
> XML записывается в файл
Запускаем из консоли:
Если скрипт запущен напрямую — вызывается функция
В результате создаётся XML-файл:
Готовый и читаемый XML-документ😈
👉 @PythonPortal
Я предпочитаю использовать
ElementTree
, но в модуле xml есть и другие способы работы с XMLФункция
create_xml(filename):
создаёт XML-файл с заданным именем.def create_xml(filename):
Затем создаём элементы:
root = xml.Element("Appointments")
appt = xml.Element("subAppointment")
root.append(appt)
> Appointments — корневой элемент
> subAppointment — дочерний элемент, добавляется к корню
Добавляем вложенный элемент:
begin = xml.SubElement(appt, "begin")
begin.text = "1181251680"
В
subAppointment
добавляется подэлемент <begin>
, содержащий текст Сериализация и запись в файл:
tree = xml.ElementTree(root)
with open(filename, "wb") as fh:
tree.write(fh)
> Создаётся дерево ElementTree из корня.
> Файл открывается в бинарном режиме записи (wb).
> XML записывается в файл
Запускаем из консоли:
if __name__ == "__main__":
create_xml("appt.xml")
Если скрипт запущен напрямую — вызывается функция
create_xml
с именем выходного файла "appt.xml"В результате создаётся XML-файл:
<Appointments>
<subAppointment>
<begin>1181251680</begin>
</subAppointment>
</Appointments>
Готовый и читаемый XML-документ
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл классный инструмент для тех, кто работает с Pandas
Теперь можно автоматически профилировать DataFrame в Jupyter с помощью Pandas AutoProfiler
На выходе — распределение по колонкам, сводная статистика, данные по null-значениям, экспорт кода и т.д.
Всё работает автоматически — писать дополнительный код не нужно
Имба, влепи лайк если согласен⚔️
👉 @PythonPortal
Теперь можно автоматически профилировать DataFrame в Jupyter с помощью Pandas AutoProfiler
На выходе — распределение по колонкам, сводная статистика, данные по null-значениям, экспорт кода и т.д.
Всё работает автоматически — писать дополнительный код не нужно
Имба, влепи лайк если согласен
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Вот игра, с которой ты выучишь Python
Нет ничего лучше, чем писать код прямо внутри игры, чтобы понять, как работает программирование на практике.
CodeStrike — шутер + приключение + Python. Полностью бесплатно в Steam — но ограниченное время
Геймплей варьируется от примитивных задачек до настоящего хакерства камер и дверей. На борту автокомплит, пошаговый дебаг и три уровня сложности
Отличный способ учиться весело. Но, увы, мало кто знает. Наслаждайся✌️
👉 @PythonPortal
Нет ничего лучше, чем писать код прямо внутри игры, чтобы понять, как работает программирование на практике.
CodeStrike — шутер + приключение + Python. Полностью бесплатно в Steam — но ограниченное время
Геймплей варьируется от примитивных задачек до настоящего хакерства камер и дверей. На борту автокомплит, пошаговый дебаг и три уровня сложности
Отличный способ учиться весело. Но, увы, мало кто знает. Наслаждайся
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Code review больше никогда не будет прежним
CodeRabbit добавил бесплатные AI-ревью кода прямо в VS Code, Cursor и Windsurf.
Этот инструмент находит баги и проверяет твой код на ошибки всего за несколько секунд. Подводит итоги и анализирует Pull Request из твоего репозитория на GitHub или GitLab
Всё что нужно это открыть панель расширений в VS Code, Cursor или Windsurf, введите😈
👉 @PythonPortal
CodeRabbit добавил бесплатные AI-ревью кода прямо в VS Code, Cursor и Windsurf.
Этот инструмент находит баги и проверяет твой код на ошибки всего за несколько секунд. Подводит итоги и анализирует Pull Request из твоего репозитория на GitHub или GitLab
Всё что нужно это открыть панель расширений в VS Code, Cursor или Windsurf, введите
"CodeRabbit"
и нажмите Install
Please open Telegram to view this post
VIEW IN TELEGRAM
Удаление элементов из set в Python
В Python множества (set) поддерживают два метода удаления элементов: remove() и discard()
На изображении выше видно:
>
>
Оба метода удаляют элементы, но ведут себя по-разному при отсутствии значения.
Такой подход помогает гибко управлять логикой в зависимости от ситуации:
> нужно жёстко контролировать наличие элемента — используй remove()
> хочешь без лишних исключений — discard() в помощь
Ставь лайк, если разобрался🚶♀️
👉 @PythonPortal
В Python множества (set) поддерживают два метода удаления элементов: remove() и discard()
На изображении выше видно:
>
s.remove(4)
выбрасывает KeyError, если элемента нет>
s.discard(4)
просто молчит и продолжает работу дальшеОба метода удаляют элементы, но ведут себя по-разному при отсутствии значения.
remove()
— строго, discard()
— спокойноТакой подход помогает гибко управлять логикой в зависимости от ситуации:
> нужно жёстко контролировать наличие элемента — используй remove()
> хочешь без лишних исключений — discard() в помощь
Ставь лайк, если разобрался
Please open Telegram to view this post
VIEW IN TELEGRAM
Python Portal
ty — новый сверхбыстрый type checker для Python от Astral Анонсирован ty — проверщик типов и языковой сервер, написанный на Rust. В тестах он в 10–100 раз быстрее аналогов (на реальных проектах — до 600x быстрее Mypy 😳 ) Цель —> сделать лучшую цепочку инструментов…
Диагностика
Если ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python😎
👉 @PythonPortal
ty
становится всё лучшеЕсли ты ссылаешься на символ или модуль, который был добавлен в более новой версии Python, вам сообщат об этом, а также укажут, где и почему была выведена поддерживаемая версия Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот репозиторий по основам PyTorch
Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.
Идеально, если хочешь вкатиться в AI — ссылка
Отличный репозиторий, но, увы, недооценён. Сохраняй♟
👉 @PythonPortal
Нет ничего лучше, чем разобраться в нейросетях на практике — тензоры, градиенты, обучение, всё по шагам в Jupyter.
Идеально, если хочешь вкатиться в AI — ссылка
Отличный репозиторий, но, увы, недооценён. Сохраняй
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот бесплатный курс по изучению Python — 100-days-of-python
С практическими упражнениями и пошаговыми туториалами
Нет ничего лучше, чем писать код ежедневно на протяжении 100 дней, чтобы прочувствовать логику программирования на практике.
Интерактивный курс, который тебе реально нужно заценить. Не благодари😈
👉 @PythonPortal
С практическими упражнениями и пошаговыми туториалами
Нет ничего лучше, чем писать код ежедневно на протяжении 100 дней, чтобы прочувствовать логику программирования на практике.
Интерактивный курс, который тебе реально нужно заценить. Не благодари
Please open Telegram to view this post
VIEW IN TELEGRAM