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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️Fugue — это мощный инструмент для обработки данных, который объединяет возможности Python и SQL. Она разработана для упрощения обработки данных в распределенных системах, таких как Apache Spark и Dask, и позволяет писать код, который будет работать как в локальном режиме, так и в распределенном.

➡️Основные возможности:
💬Упрощение кода для обработки данных
💬Поддержка различных движков выполнения (Spark, Dask)
💬Поддержка SQL, что позволяет использованию знакомого синтаксиса для работы с данными

➡️Пример использования:
# Установка библиотеки
!pip install fugue

# Импорт необходимых модулей
from fugue import FugueEngine
from fugue.spark import SparkExecutionEngine

# Пример обработки данных
def process_data(df):
return df.groupby("category").agg({"value": "sum"})

# Инициализация движка
engine = SparkExecutionEngine()

# Чтение данных
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
]

# Обработка данных
result = engine.run(data, process_data)

# Вывод результата
print(result)

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥3
✈️pyTermTk - библиотека для создания продвинутых текстовых интерфейсов (TUI) с поддержкой виджетов, тем оформления и кросс-платформенной работой. Она позволяет строить интерактивные терминальные приложения с элементами GUI (кнопки, таблицы, формы) без зависимости от графического сервера.

➡️Пример использования:
from TermTk import TTk, TTkButton

def on_click():
print("Button clicked!")

root = TTk.TTk()
btn = TTkButton(text="Click me!", pos=(10,5), size=(20,3))
btn.clicked.connect(on_click)
root.mainloop()


💡 Главный плюс:
Полноценный набор UI-компонентов (CheckBox, RadioButton, ScrollArea) + поддержка "тёмной/светлой" тем прямо в терминале.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥4
✈️Pywebview — это легковесная библиотека для создания графических приложений на Python с использованием веб-технологий. Она позволяет разрабатывать интерфейсы с помощью HTML, CSS и JavaScript, а также интегрировать их с логикой на Python. Pywebview предоставляет простой способ взаимодействия между веб-интерфейсом и кодом на Python.

➡️Создание простого окна. Вот базовый пример:
import webview

# Создаем окно с URL
webview.create_window('Пример pywebview', '<https://example.com>')

# Запускаем приложение
webview.start()

⬆️Этот код создаст окно с названием "Пример pywebview" и загрузит страницу по указанному URL. Это отличный способ быстро превратить ваше веб-приложение в настольное приложение.

GitHub

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32👏1
➡️Использование оператора %s для форматирования строк

Оператор %s используется для вставки значения переменной в строку. Для этого нужно указать %s внутри строки и затем после строки поставить знак %, за которым следует переменная, значения которой нужно вставить.

Пример:
name = "John"
age = 25
print("Меня зовут %s и мне %s лет." % (name, age))

Вывод:
Меня зовут John и мне 25 лет.


⬆️В этом примере мы использовали оператор %s для вставки значений переменных name и age в строку. Мы передали эти значения в виде кортежа (name, age) после знака %.

➡️Форматирование чисел с помощью оператора %s

Оператор %s также может использоваться для форматирования чисел. Для этого нужно указать %s внутри строки и затем после строки поставить знак %, за которым следует число, значение которого нужно вставить.

Пример:
number = 42
print("Ответ на главный вопрос жизни: %s" % number)

Вывод:
Ответ на главный вопрос жизни: 42


⬆️В этом примере мы использовали оператор %s для вставки значения переменной number в строку.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥51
✈️Python функции globals() и locals() возвращают словари с текущими переменными — глобальными и локальными соответственно. Это даёт прямой доступ к пространству имён программы.

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

def demo():
y = 5
print("Локальные:", locals())
print("Глобальные:", globals()["x"])

demo()

Локальные: {'y': 5}
Глобальные: 10


➡️Зачем это нужно:
- Отладка и инспекция переменных
- Динамическое выполнение кода (eval, exec)
- Построение интерактивных сред (например, REPL или дебаггеры)

💡Использовать с осторожностью — это мощный, но легко усложняющий читаемость инструмент.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍32
✈️dabl - библиотека для автоматического анализа данных и построения базовых ML-моделей в одну строку кода. Разработана командой scikit-learn.

➡️Ключевая функция:
Автоматизирует всю рутину: предобработку данных, feature engineering и подбор моделей с визуализацией результатов.

➡️Пример использования:
import dabl
data = dabl.datasets.load_titanic()
dabl.SimpleClassifier().fit(data, target_col="survived")
# Готово! Смотрите отчёт в Jupyter


GitHub

💡Главный плюс
Мгновенный старт работы с данными — библиотека сама определяет типы фичей, подбирает трансформеры и строит interpretable-модели.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍31
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16🤣3👍2💯1😐1
✈️Функция help в Python используется для получения справочной информации о встроенных функциях, методах, модулях, классах и объектах Python. Эта функция является очень полезным инструментом для изучения новых методов и библиотек, а также для получения помощи в решении проблем.

➡️Чтобы использовать функцию help, просто вызовите ее и передайте объект, для которого вы хотите получить справочную информацию. Например, если вы хотите получить справочную информацию о функции print, вы можете вызвать функцию help следующим образом:
help(print)

🔫Это приведет к выводу документации о функции print в вашем интерпретаторе Python.

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

➡️Основное назначение контейнеров — удобное и эффективное хранение и доступ к группам объектов. Контейнеры позволяют легко добавлять, удалять и итерировать элементы.

➡️Все контейнеры в Python реализуют общие методы, такие как len() для получения размера и contains() для проверки вхождения элемента. Это обеспечивает единый интерфейс работы с разными типами контейнеров.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍42
👍5🔥2
Что выдаст код выше
Anonymous Quiz
11%
(7, 3)
54%
[(7, 3)]
13%
7, 3
22%
Error
👀6🔥2🤔1🤨1
🤔Разбор

Возникнет ошибка. Т.к. функция zip() ожидает итерируемые объекты (например, списки, кортежи или строки), а передаётся два целых числа


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥52
✈️ImageHash – это Python-библиотека для вычисления perceptual-хешей изображений. Она помогает находить похожие или дублирующиеся картинки, даже если они были изменены (например, обрезаны или пережаты).

➡️ Ключевая функция:
Сравнение изображений через хеши (ahash, dhash, phash, whash), что позволяет быстро искать дубликаты без полного перебора пикселей.

➡️Пример использования:
from PIL import Image
import imagehash

hash1 = imagehash.average_hash(Image.open('image1.jpg'))
hash2 = imagehash.average_hash(Image.open('image2.jpg'))
print(hash1 - hash2) # Чем меньше разница, тем больше похожи изображения


💡 Главный плюс:
Автоматизация поиска дубликатов с высокой точностью и поддержкой разных алгоритмов хеширования. Отлично подойдет для очистки медиабиблиотек.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
✈️Библиотека Keras - это высокоуровневая нейронная сеть, написанная на языке Python. Она предоставляет простой и интуитивно понятный интерфейс для создания и обучения глубоких нейронных сетей. Благодаря своей простоте и гибкости, Keras позволяет разработчикам быстро создавать и испытывать различные модели машинного обучения.

➡️Преимущества Keras

Keras имеет несколько преимуществ, которые делают его популярным выбором среди разработчиков машинного обучения. Во-первых, Keras обладает простым и интуитивно понятным API, что делает его легко изучаемым и использованием даже для новичков. Во-вторых, Keras предоставляет множество предварительно обученных моделей, которые можно использовать для решения различных задач. Наконец, Keras обеспечивает высокую производительность и эффективность, благодаря использованию оптимизированных библиотек, таких как TensorFlow и Theano.

➡️Возможности Keras

Keras поддерживает широкий спектр возможностей машинного обучения. Он позволяет создавать и обучать различные типы нейронных сетей, включая полносвязные сети, сверточные нейронные сети и рекуррентные нейронные сети. Кроме того, Keras предоставляет инструменты для работы с изображениями, текстом и временными рядами. Он также поддерживает автоматическое распределение обучения на несколько GPU, что позволяет ускорить процесс обучения на больших данных.

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

➡️Пример:
user_input = "  hello world  "
cleaned = user_input.strip()
print(cleaned)
# ➜ "hello world"

🔫В этом примере strip() убирает лишние пробелы по краям строки, оставляя только значимый текст.

💡strip() удобно использовать при чтении из файлов, работе с формами, разборе CSV/JSON и валидации пользовательского ввода. Также существуют .lstrip() и .rstrip() — для удаления только слева или справа. Метод делает работу с текстом точной и предсказуемой

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
✈️Что такое асинхронное программирование?
Асинхронное программирование - это способ написания кода, позволяющий выполнять несколько задач одновременно без блокировки основного потока выполнения. В Python для этого используются ключевые слова async и await, которые делают функции асинхронными и определяют точки, где происходит ожидание.

➡️Преимущества асинхронного программирования:
1. Увеличение производительности: Асинхронный код позволяет эффективно использовать ресурсы, ускоряя выполнение задач.
2. Масштабируемость: Обработка множества задач одновременно без блокировки позволяет создавать масштабируемые приложения.
3. Улучшен отклик приложения: Пользователи получают быстрый отклик, даже если выполняются длительные операции.

➡️Основные концепции асинхронного программирования в Python:
- `async def` и `await`: Обозначают асинхронные функции и точки ожидания выполнения задачи.
- Цикл событий (Event Loop): Основной механизм управления выполнением асинхронных задач.
- Корутины (Coroutines): Асинхронные функции, которые могут приостанавливать свое выполнение.

➡️Пример асинхронного кода:
import asyncio

async def async_example():
print("Начало выполнения")
await asyncio.sleep(2)
print("Завершение выполнения")

async def main():
tasks = [async_example() for _ in range(5)]
await asyncio.gather(*tasks)

if __name__ == "__main__":
asyncio.run(main())


➡️Интеграция асинхронного кода:
Множество библиотек и фреймворков в Python уже поддерживают асинхронное программирование, включая aiohttp, asyncio, и многие другие. Это позволяет создавать высокопроизводительные веб-приложения, работающие с асинхронными запросами.

Дополнительные ресурсы:
- Документация Python по асинхронному программированию
- Статья на Real Python: "Async IO in Python: A Complete Walkthrough"

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥2
✈️Инкапсуляция - это один из четырех основных принципов объектно-ориентированного программирования. Она позволяет скрыть внутреннюю реализацию объекта от других объектов и защитить его состояние от неправильного использования.

➡️ Методы и атрибуты
В Python, чтобы скрыть атрибуты объекта, их нужно объявить как приватные, используя два подчеркивания перед именем атрибута. Например, для создания приватного атрибута name нужно написать __name. Также для доступа к этому атрибуту извне класса нужно использовать специальные методы get и set.

➡️Метод get возвращает значение приватного атрибута, а метод set устанавливает новое значение. Эти методы должны быть определены в самом классе. Например:
class Person:
def __init__(self, name):
self.__name = name

def get_name(self):
return self.__name

def set_name(self, name):
self.__name = name

person = Person("John")
print(person.get_name()) # "John"
person.set_name("Mike")
print(person.get_name()) # "Mike"


💡Для чего нужна инкапсуляция вообще?
- Защита данных от внешнего доступа
- Предотвращение случайных изменений данных
- Упрощение взаимодействия с объектами
- Сокрытие сложной логики работы объекта от пользователя

💡Будет ли код работать без нее?
- Да, будет!

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥3🤣1
✈️CPython — это основная реализация Python на C, и именно она запускается, когда ты пишешь python file.py.

➡️Работает в 3 шага:
1. Парсинг — Python-код превращается в AST (дерево разбора)
2. Компиляция — AST превращается в байткод (.pyc), понятный интерпретатору
3. Исполнение — байткод читается виртуальной машиной, которая шаг за шагом исполняет инструкции

➡️Можно посмотреть байткод вот так:
import dis

def hello():
print("hi")

dis.dis(hello)

🔫Выведет набор инструкций, как CPU, только питоновый.
CPython — медленный, но гибкий. Именно тут живёт GIL, и именно он влияет на потоки.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥31
✈️Метод setdefault() используется для получения значения по ключу из словаря, одновременно создавая его, если ключа ещё нет.

➡️Пример:
data = {}
data.setdefault("users", []).append("Анна")
data.setdefault("users", []).append("Борис")

print(data)

{'users': ['Анна', 'Борис']}


💡Удобно при работе с коллекциями внутри словаря — не нужно проверять наличие ключа вручную. Альтернатива конструкции с if key not in dict.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥2
✈️В мире Python программирования, логирование играет важную роль в отслеживании работы приложений и выявлении ошибок. Одним из самых удобных и мощных инструментов для этой задачи является библиотека Loguru. В этом посте мы рассмотрим основные преимущества и возможности Loguru, которые делают его отличным выбором для логирования в Python.

➡️Простота использования
Одним из основных преимуществ Loguru является его простота использования. В отличие от стандартной библиотеки logging, которая может показаться сложной и громоздкой, Loguru предлагает простой и интуитивно понятный интерфейс. Для начала работы достаточно импортировать библиотеку и начать логирование с помощью одной строки кода:
from loguru import logger

logger.info("Привет, Loguru!")


Это позволяет значительно сократить время на настройку и сразу приступить к логированию.

➡️Гибкость и мощность
Loguru предоставляет широкие возможности для настройки логирования. Вы можете легко настроить формат сообщений, уровни логирования и маршрутизацию логов. Например, вы можете отправлять логи в разные файлы в зависимости от их уровня важности:
logger.add("debug.log", level="DEBUG")
logger.add("error.log", level="ERROR")

logger.debug("Это сообщение для отладки")
logger.error("Это сообщение об ошибке")


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

➡️Встроенные дополнительные функции
Помимо стандартных возможностей логирования, Loguru включает в себя множество дополнительных функций, которые делают его ещё более привлекательным. Например, библиотека поддерживает автоматическое добавление контекстной информации к логам, такую как имя функции, строка кода и т.д. Также существует возможность автоматического ротации логов, что позволяет избежать переполнения дискового пространства:
logger.add("file_{time}.log", rotation="500 MB")

logger.info("Это сообщение будет записано в новый файл при достижении лимита в 500 MB")


💡Эти и другие функции делают Loguru мощным инструментом для профессионального логирования.

🖥GitHub loguru

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1