ch
Feedback
Pythoner

Pythoner

前往频道在 Telegram

Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode

显示更多
6 808
订阅者
+224 小时
-17
-4130
帖子存档
✈️Казалось бы, куда еще проще, но есть один интересный пакет JMESpath, который позволяет декларативно указать, как извлекать
✈️Казалось бы, куда еще проще, но есть один интересный пакет JMESpath, который позволяет декларативно указать, как извлекать элементы из документа JSON. ➡️Основные примеры использования:
import jmespath

jmespath.search('foo.bar', {'foo': {'bar': 'baz'}})
# output: 'baz'

jmespath.search('foo.*.name', {'foo': {'bar': {'name': 'one'}, 'baz':
{'name': 'two'}}})
# output: ['one', 'two']
⬆️Тут нет ничего сложного. Метод search принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). ➡️Возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее можно почитать в документации. 🐍Pythoner

✈️Функция globals() возвращает словарь всех глобальных переменных текущего модуля. Можно использовать для динамического досту
✈️Функция globals() возвращает словарь всех глобальных переменных текущего модуля. Можно использовать для динамического доступа к переменным по имени. ➡️Пример:
x = 42
name = "Python"

print(globals()["x"])     # 42
print(globals()["name"])  # Python
💡Заключение: Полезно для отладки, метапрограммирования и работы с динамическими именами, но в обычном коде лучше использовать напрямую

✈️Sidecar — это архитектурный паттерн, когда рядом с основным сервисом запускается отдельный контейнер, который выполняет всп
✈️Sidecar — это архитектурный паттерн, когда рядом с основным сервисом запускается отдельный контейнер, который выполняет вспомогательные задачи. ➡️Что обычно выносят в sidecar: — логирование и сбор метрик — прокси для сетевых запросов — сервис Mesh (например, Istio Envoy) — мониторинг и безопасность 💡Преимущества: — основной сервис остаётся «чистым» и сосредоточенным только на бизнес-логике — независимое обновление и масштабирование sidecar — одинаковый подход к инфраструктуре (единые логеры, агенты метрик и т.д.) 🐍 Pythoner

Аукцион выделенных серверов! Серверы дешевеют у вас на глазах! Новые лоты каждый день, скидки до -35% на весь срок аренды. Успейте арендовать, пока лот не ушел другому! Получить предложение #реклама 16+ selectel.ru О рекламодателе

✈️frozenset — это множество, элементы которого нельзя изменять после создания. Оно поддерживает те же операции, что и обычный
✈️frozenset — это множество, элементы которого нельзя изменять после создания. Оно поддерживает те же операции, что и обычный set: объединение, пересечение, разность. ➡️Пример:
a = frozenset([1, 2, 3])
b = frozenset([3, 4, 5])

print(a & b)  # пересечение → frozenset({3})
💡Удобно, когда нужно использовать множество как ключ в словаре или элемент другого множества 🐍 Pythoner

🤔Разбор Простейший пример когда код завершается с ошибкой, так как невозможно сравнить строку с числом 🐍 Pythoner

Что выдаст код выше❔
Anonymous voting

photo content

✈️Функция isinstance() проверяет, относится ли объект к указанному типу (или кортежу типов). Полезно для валидации данных и н
✈️Функция isinstance() проверяет, относится ли объект к указанному типу (или кортежу типов). Полезно для валидации данных и написания универсальных функций. ➡️Пример:
x = 3.14

if isinstance(x, (int, float)):
    print("Это число")

Это число
💡isinstance() в отдельных случаях удобнее и безопаснее, чем привычное сравнение через type(). 🐍 Pythoner

✈️Иногда нужно пропустить определённые исключения, не оборачивая код в громоздкий try/except. Для этого есть suppress() из мо
✈️Иногда нужно пропустить определённые исключения, не оборачивая код в громоздкий try/except. Для этого есть suppress() из модуля contextlib. ➡️Пример:
from contextlib import suppress

data = {"a": 1}

with suppress(KeyError):
    print(data["b"])  # Ошибка будет проигнорирована

print("Код продолжает работать")

Код продолжает работать
💡Удобно, когда ошибка допустима и не требует обработки — например, при удалении файла, который может отсутствовать. 🐍 Pythoner

✈️Пространство имён в Python гарантирует, что имена объектов в программе остаются уникальными и могут использоваться без конф
✈️Пространство имён в Python гарантирует, что имена объектов в программе остаются уникальными и могут использоваться без конфликтов. ➡️Рассмотрим основные типы пространств имён: - Локальное пространство имён содержит имена, определённые внутри функции. Оно создаётся временно при вызове функции и удаляется после её завершения. - Глобальное пространство имён включает имена из импортированных модулей и пакетов, используемых в проекте. Оно формируется при импорте модуля и существует до завершения работы скрипта. - Встроенное пространство имён содержит встроенные функции Python и зарезервированные имена для различных типов исключений. ➡️Пример:
x = 10  # Глобальное

def foo():
    x = 5  # Локальное
    print(x)  # Выведет 5 (локальное)

foo()
print(x)  # Выведет 10 (глобальное)
💡В Python пространства имён реализованы как словари, где «имя» выступает ключом, а «объект» — соответствующим значением. 🐍 Pythoner

✈️keyboard - Эта библиотека позволяет полностью контролировать клавиатуру в Python - перехватывать нажатия, эмулировать ввод
✈️keyboard - Эта библиотека позволяет полностью контролировать клавиатуру в Python - перехватывать нажатия, эмулировать ввод и создавать "горячие клавиши". ➡️ Главная функция: перехват и эмуляция любых клавиатурных событий на низком уровне. 🖥 GitHub 💡Преимущества: - Поддержка глобальных хоткеев (работают даже когда окно не в фокусе) - Простая эмуляция нажатий клавиш - Кроссплатформенность (Windows/Linu). 🐍 Pythoner

✈️Pandera — это удобный инструмент для проверки структуры и содержимого данных в Python. Он работает как дополнительный слой
✈️Pandera — это удобный инструмент для проверки структуры и содержимого данных в Python. Он работает как дополнительный слой валидации поверх pandas DataFrame и других структур данных, помогая выявлять ошибки на ранних этапах обработки. ➡️Основные применения: - Определение схемы. Например, схема, которая проверяет, что столбец 1 должен быть целым числом, большим 0, а столбец 2 — строкой с более чем 5 символами. - Проверка данных с помощью схемы. Например, если создать фрейм данных с отрицательным значением в столбце 1, проверка завершится ошибкой, так как это не соответствует требованиям схемы. - Проверка нескольких фреймов данных. Pandera позволяет определять схемы с проверками по нескольким столбцам. Например, схема, которая проверяет, что сумма столбцов 1 и 2 больше 0. 🖥 GitHub 💡Основная задача Pandera — гарантировать соответствие данных ожидаемой схеме: типам, диапазонам значений и бизнес-правилам.

✈️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя. Он позволяет быстро созда
✈️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя. Он позволяет быстро создавать интерфейсы при помощи Python, без необходимости изучать сложные GUI библиотеки, такие как Tkinter, Qt или wxPython. ➡️PySimpleGUI широко используется для создания небольших утилит и инструментов с GUI, например: — Простые GUI для скриптов автоматизации. — Инструменты для обработки и визуализации данных. — Маленькие вспомогательные приложения для повседневных задач. 💡Основные преимущества PySimpleGUI: - Простой и интуитивно понятный синтаксис. - Кроссплатформенность: работает на Windows, MacOS, Linux. - Встроенная поддержка многих виджетов и тем оформления. - Автоматическое размещение элементов GUI. 🖥GitHub 🐍 Pythoner

🤔Разбор В Python кортежи сравниваются лексикографически (поэлементно, слева направо). Сначала сравниваются первые элементы: 100 > 1 → True. Если первые элементы равны, сравниваются вторые элементы. Но в данном случае первое сравнение уже даёт результат Ответ: A 🐍 Pythoner

Что выдаст код выше❔
Anonymous voting

photo content

✈️Python-Statemachine - библиотека которая помогает удобно управлять переходами между разными состояниями в программе. Наприм
✈️Python-Statemachine - библиотека которая помогает удобно управлять переходами между разными состояниями в программе. Например, как светофор меняет цвета: «зелёный → жёлтый → красный». ➡️Она поможет избежать хаоса в коде, когда у вас много условий типа «если состояние X, то сделать Y». Вместо этого вы описываете логику переходов один раз — и библиотека сама следит за правильностью. ➡️Пример (как сделать светофор):
from statemachine import StateMachine, State

class TrafficLight(StateMachine):
    green = State('Зелёный', initial=True)  # Начинаем с зелёного
    yellow = State('Жёлтый')
    red = State('Красный')

    switch = (
        green.to(yellow)  # Зелёный → Жёлтый
        | yellow.to(red)  # Жёлтый → Красный
        | red.to(green)   # Красный → Зелёный
    )

light = TrafficLight()
light.switch()  # Меняем состояние
print(light.current_state)  # Теперь "Жёлтый"
💡Заключеие: Всё наглядно: состояния и переходы видны сразу, а не спрятаны в куче if-else. Подходит для любых процессов, где есть чёткие этапы — от игр до бизнес-логики. 🐍Pythoner

Сериалы, которые вы могли пропустить в 2025 году Ежегодно выходит огромное количество сериалов — и всегда есть шанс пропустить что-то классное в потоке более громких проектов с большими звездами. Собрали несколько проектов, которые вы могли упустить —они точно заслуживают вашего внимания! Смотрите в Амедиатеке! Подписаться #реклама 18+ О рекламодателе

✈️Radon – это инструмент для статического анализа Python-кода, который вычисляет метрики сложности, такие как цикломатическая
✈️Radon – это инструмент для статического анализа Python-кода, который вычисляет метрики сложности, такие как цикломатическая сложность и индекс поддерживаемости. ➡️Основная задача: Автоматически оценивать сложность кода и выявлять потенциально проблемные участки. ➡️Пример использования:
# Анализ цикломатической функции
from radon.complexity import cc_visit

code = """
def example(x):
    if x > 0:
        return x + 1
    else:
        return x - 1
"""

result = cc_visit(code)
print(result)  # Выводит метрики сложности
🖥GitHub 💡Главный плюс: Radon помогает поддерживать чистый и читаемый код, автоматизируя анализ сложности и интеграцию в CI/CD. 🐍Pythoner

Pythoner - Telegram 频道 @pythonercode 的统计与分析