Pythoner
6.96K subscribers
922 photos
27 videos
4 files
715 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️Библиотека psutil (process and system utilities) — это кроссплатформенный инструмент для мониторинга системных ресурсов и управления процессами в Python.

➡️Она предоставляет простой интерфейс для получения информации о CPU, памяти, дисках, сети и запущенных процессах.

➡️Некоторые полезные функции:
- Мониторинг использования CPU
psutil.cpu_percent()

- Информация о дисковом пространстве
psutil.disk_usage('/')

- Информация об ОЗУ
psutil.virtual_memory()

- Данные о сетевой активности
psutil.net_io_counters()

- Управление процессами
psutil.process_iter()

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
✈️Оператор pass в Python, возможно, является одним из наиболее непонятных для новичков. Этот оператор не делает абсолютно ничего. Но почему же он тогда нужен?

➡️Плейсхолдер для будущего кода

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

➡️Минимальные классы и функции

Оператор pass может быть полезен при создании минимальных классов или функций. В Python, класс или функция не может быть пустой. Если вы попытаетесь создать пустой класс или функцию, интерпретатор вернет ошибку. Оператор pass позволяет обойти это ограничение.

➡️Управление потоком программы

Оператор pass также может быть использован для управления потоком программы. Иногда в условной конструкции if/elif/else или в цикле for/while может не быть необходимости выполнять какое-либо действие. В этих случаях можно использовать оператор pass для обозначения пустого блока.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥2🥰1
✈️httpdbg – это инструмент для отладки HTTP-запросов в Python. Он перехватывает и логирует все исходящие запросы, помогая быстро находить ошибки в работе с API.

➡️Ключевая функция:
Позволяет в реальном времени видеть все HTTP-запросы, включая URL, заголовки и тело, без модификации кода.

➡️Пример использования:
import httpdbg  
import requests

with httpdbg.init() as records:
requests.get("https://api.example.com/data")

for record in records:
print(record) # вывод деталей запроса


🖥GitHub

💡Заключение:
httpdbg автоматизирует отладку HTTP-взаимодействий, экономя время на ручном анализе запросов. Отлично подходит для тестирования API и веб-скрапинга!

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
✈️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
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1🔥1
✈️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
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
🔥3👍21🤓1
Что выдаст код выше
Anonymous Quiz
48%
True
25%
False
5%
None
23%
Error
🤯7👍2🤨1
🤔Разбор

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

Ответ: A


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4👍1
✈️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя.
Он позволяет быстро создавать интерфейсы при помощи Python, без необходимости изучать сложные GUI библиотеки, такие как Tkinter, Qt или wxPython.

➡️PySimpleGUI широко используется для создания небольших утилит и инструментов с GUI, например:
— Простые GUI для скриптов автоматизации.
— Инструменты для обработки и визуализации данных.
— Маленькие вспомогательные приложения для повседневных задач.

💡Основные преимущества PySimpleGUI:
- Простой и интуитивно понятный синтаксис.
- Кроссплатформенность: работает на Windows, MacOS, Linux.
- Встроенная поддержка многих виджетов и тем оформления.
- Автоматическое размещение элементов GUI.

🖥GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1👻1
✈️Pandera — это удобный инструмент для проверки структуры и содержимого данных в Python. Он работает как дополнительный слой валидации поверх pandas DataFrame и других структур данных, помогая выявлять ошибки на ранних этапах обработки.

➡️Основные применения:
- Определение схемы. Например, схема, которая проверяет, что столбец 1 должен быть целым числом, большим 0, а столбец 2 — строкой с более чем 5 символами.

- Проверка данных с помощью схемы. Например, если создать фрейм данных с отрицательным значением в столбце 1, проверка завершится ошибкой, так как это не соответствует требованиям схемы.

- Проверка нескольких фреймов данных. Pandera позволяет определять схемы с проверками по нескольким столбцам. Например, схема, которая проверяет, что сумма столбцов 1 и 2 больше 0.

🖥 GitHub

💡Основная задача Pandera — гарантировать соответствие данных ожидаемой схеме: типам, диапазонам значений и бизнес-правилам.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1
✈️keyboard - Эта библиотека позволяет полностью контролировать клавиатуру в Python - перехватывать нажатия, эмулировать ввод и создавать "горячие клавиши".

➡️ Главная функция:
перехват и эмуляция любых клавиатурных событий на низком уровне.

🖥 GitHub

💡Преимущества:
- Поддержка глобальных хоткеев (работают даже когда окно не в фокусе)
- Простая эмуляция нажатий клавиш
- Кроссплатформенность (Windows/Linu).

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥1
✈️Пространство имён в Python гарантирует, что имена объектов в программе остаются уникальными и могут использоваться без конфликтов.

➡️Рассмотрим основные типы пространств имён:

- Локальное пространство имён содержит имена, определённые внутри функции. Оно создаётся временно при вызове функции и удаляется после её завершения.

- Глобальное пространство имён включает имена из импортированных модулей и пакетов, используемых в проекте. Оно формируется при импорте модуля и существует до завершения работы скрипта.

- Встроенное пространство имён содержит встроенные функции Python и зарезервированные имена для различных типов исключений.

➡️Пример:
x = 10  # Глобальное

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

foo()
print(x) # Выведет 10 (глобальное)


💡В Python пространства имён реализованы как словари, где «имя» выступает ключом, а «объект» — соответствующим значением.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21
✈️Иногда нужно пропустить определённые исключения, не оборачивая код в громоздкий try/except.
Для этого есть suppress() из модуля contextlib.


➡️Пример:
from contextlib import suppress

data = {"a": 1}

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

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

Код продолжает работать


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
✈️Функция isinstance() проверяет, относится ли объект к указанному типу (или кортежу типов).
Полезно для валидации данных и написания универсальных функций.


➡️Пример:
x = 3.14

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

Это число


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥32
👍5🤝1
Что выдаст код выше
Anonymous Quiz
1%
[3, 2, 1, "a"]
52%
[1, 2, 3, "a"]
18%
["a", 1, 2, 3]
29%
TypeError
🤔4👌2👍1
🤔Разбор

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


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2😁2
✈️frozenset — это множество, элементы которого нельзя изменять после создания. Оно поддерживает те же операции, что и обычный set: объединение, пересечение, разность.

➡️Пример:
a = frozenset([1, 2, 3])
b = frozenset([3, 4, 5])

print(a & b) # пересечение → frozenset({3})


💡Удобно, когда нужно использовать множество как ключ в словаре или элемент другого множества

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
✈️Sidecar — это архитектурный паттерн, когда рядом с основным сервисом запускается отдельный контейнер, который выполняет вспомогательные задачи.

➡️Что обычно выносят в sidecar:
— логирование и сбор метрик
— прокси для сетевых запросов
— сервис Mesh (например, Istio Envoy)
— мониторинг и безопасность

💡Преимущества:
— основной сервис остаётся «чистым» и сосредоточенным только на бизнес-логике
— независимое обновление и масштабирование sidecar
— одинаковый подход к инфраструктуре (единые логеры, агенты метрик и т.д.)

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
✈️Функция globals() возвращает словарь всех глобальных переменных текущего модуля.
Можно использовать для динамического доступа к переменным по имени.


➡️Пример:
x = 42
name = "Python"

print(globals()["x"]) # 42
print(globals()["name"]) # Python


💡Заключение:
Полезно для отладки, метапрограммирования и работы с динамическими именами, но в обычном коде лучше использовать напрямую

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2