Python Portal
55.1K subscribers
1.9K photos
121 videos
45 files
498 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Пожалуйста, перестань использовать 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 с помощью библиотеки Loguru — удобной и мощной альтернативы стандартному logging

Примеры кода показаны для реальных задач, от простой отладки до продакшен-логирования.

Приятного изучения 💪

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование декоратора dataclass в Python

Декоратор dataclass упрощает создание классов, которые в основном хранят данные. Он автоматически генерирует специальные методы, такие как __init__, __repr__ и другие. Это снижает многословность кода, сохраняя при этом его ясность и функциональность.

На фото приведены два примера. В первом мы используем декоратор dataclass, поэтому явно не добавляем методы __init__, __repr__ и __eq__. Они автоматически добавляются декоратором.

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

Ставь лайк если пост был полезным 🪑

👉 @PythonPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:

Чтобы посчитать количество вхождений элементов, используйте 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})



👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно искать ключи в нескольких словарях с приоритетом?

Ручной способ поиска: сначала в 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) — он сам идет по цепочке, пока не найдет ключ

Даже если ключ есть в нескольких словарях, берётся первое вхождение по приоритету

👉 @PythonPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В России теперь можно официально зарегать свои ИТ-скиллы

Минцифра запустила платформу, где любой желающий может пройти тест и получить сертификат — всё добровольно.
Результат ляжет в личный кабинет на Госуслугах и будет действовать целый год.

Уже можно подтвердить знания по Python, Java, SQL, Linux и другим технологиям.

Пройти можно тут: gosuslugi.ru/itskills 🧠

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование оператора match case

В Python 3.10 был введён оператор match case для сопоставления с образцом (pattern matching). Он предоставляет более питоничный способ обработки множества условий без использования традиционных конструкций if-else.

Выше представлен пример использования оператора match case для сопоставления дней недели с задачами. Например, case 'monday' срабатывает, если значение переменной day равно 'monday', и возвращает 'learn Python'.

Подход с match-case более читаемый по сравнению с традиционным if, особенно при работе с большим числом условий

Ставь лайк если это полезно для тебя 😈

👉 @PythonPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно создать XML с помощью Python? Попробуй модуль xml. 🐍

Я предпочитаю использовать 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-документ 😈

👉 @PythonPortal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Вот игра, с которой ты выучишь Python

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

CodeStrike — шутер + приключение + Python. Полностью бесплатно в Steam — но ограниченное время

Геймплей варьируется от примитивных задачек до настоящего хакерства камер и дверей. На борту автокомплит, пошаговый дебаг и три уровня сложности

Отличный способ учиться весело. Но, увы, мало кто знает. Наслаждайся ✌️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM