Python community developers
1.38K subscribers
367 photos
45 videos
6 files
241 links
Сообщество программистов на языке Python🙂
🔥Разбор вопросов и задач с собеседований
🔥Обзор популярных библиотек и фишек языка
🔥Интересные идеи программ

Сотрудничество - @BorryaD

@Python_community_developers_bot
加入频道
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Babelfishнейросеть, которая переведет любое аудио на нужный вам язык в реальном времени

Сервис моментально распознает речь и переведет в текст на любой язык. Идеально подойдет для учебы и просмотра зарубежных подкастов.

Работает с русским языком, да ещё и бесплатна 😎

📂 Сохраняем и используем ТУТ

Туториал на YouTube

#soft #nn
⚙️ Оптимизация памяти в Python: Использование генераторов вместо списков

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

➡️ Пример кода

Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:

# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]


Этот код создает список квадратов чисел, что требует значительного объема памяти. Вместо этого можно использовать генератор, который создаст объекты по мере их запроса, не занимая много памяти:

# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))


Теперь squares - это генератор, который генерирует квадраты чисел по мере необходимости, занимая минимальное количество памяти.

Почему это полезно

Использование генераторов вместо списков позволяет значительно экономить память, особенно при работе с большими наборами данных. Это делает ваш код более эффективным и позволяет работать с гораздо большими объемами данных без значительных затрат ресурсов.
Работаем с картинками в Python

Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.

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

Метод Image.open('resources/img/cat.jpg') считывает картинку из папки.

img.convert('L') трансформирует картинку в черно-белую.

ImageOps.invert(image) обращает цвета.

img.transpose(Image.FLIP_LEFT_RIGHT) вертикально отзеркаливает картинку.

img.save('grayscale_cat.jpg') сохранит картинку на диске.
Использование списка списков (List Comprehensions) для создания двумерных массивов

Когда вам нужно создать двумерный массив (список списков) с инициализированными значениями, можно использовать мощные и лаконичные возможности списка списков в Python.

Использование списка списков позволяет легко и быстро создавать двумерные массивы с любой логикой инициализации, делая код компактным и понятным.
Наследование

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

Мы все прекрасно знаем, что котики, к примеру, любят всё ронять, а собакены — рыть землю. Создадим два соответствующих класса-наследника.

Теперь объекты этих двух классов могут не только издавать животные звуки, но и выполнять собственные уникальные действия.
⚙️ pathlib для работы с системными путями

ℹ️ Модуль Python os, мягко говоря, отстой… К счастью, разработчики ядра Python услышали крики миллионов и представили библиотеку pathlib в Python 3.4. Она обеспечивает удобный объектно-ориентированный подход к системным путям.

🗣️ Она также очень старается решить все проблемы, связанные с системой путей Windows

🔗 Ссылочка на доку
Получаем гласные

Этот пример возвращает в строке найденные гласные "a e i o u". Это может оказаться полезным при поиске или обнаружении гласных.
👨‍💻 The Algorithms — крупнейшая библиотека алгоритмов с открытым исходным кодом.

Отличная подборка самых популярных алгоритмов на Python и других языках. Идеально подходит для обучения.

📂 Сохраняем

📌 Веб-сайт на русском
📌 GitHub

#doc #cheatsheet #python
Многопоточность

В модуле threading новый поток выполнения может начинаться с нового threading.Thread и присвоения ему функции для выполнения.

Параметр target ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start, также не будет вызываться Thread объекта.

Когда my_thread завершается, вызов start выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True или установите my_thread.daemon в True перед вызовом start().

#потоки #многопоточность
➡️ PyForest: Один импорт для всех важных модулей

Импортируйте все ключевые библиотеки Python одной строкой. Это удобно для всех ваших проектов по Data Science и при создании нового окружения в Conda.

🗣️ При работе с данными вы используете библиотеки, такие как pandas, matplotlib, seaborn, numpy и sklearn. Прежде чем приступить к работе, нужно их импортировать.

Библиотека решает несколько проблем
:

• Однообразие: импорт всегда одинаковый и скучный.
• Пропущенные импорты мешают работе.
• Иногда нужно искать точные строки импорта, например, import matplotlib.pyplot as plt или from sklearn.ensemble import GradientBoostingRegressor.

🔗 Ссылочка на доку
Использование try/except для безопасного доступа к словарям

Когда вы работаете со словарями и хотите получить значение по ключу, но не уверены, существует ли этот ключ, вместо того чтобы писать сложные проверки, можно использовать конструкцию try/except.

Использование try/except делает код более надёжным и защищает от сбоев, вызванных отсутствием ключей в словарях, что упрощает работу с динамическими и неопределёнными данными.
Media is too big
VIEW IN TELEGRAM
▶️ ООП: Наследование (Inheritance)

Сегодня разберемся что это такое и зачем это нужно программисту

Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.

Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.

👀 Смотреть на YouTube
⚙️ Fabulous — вывод картинок в консоль

ℹ️ Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно!

🗣️ Использовать только в небольших количествах во избежание перелома чувства прекрасного

🔗 Ссылочка на доку
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Kolors Virtual — нейросеть которая может переодевать ЛЮБОГО человека с помощью ИИ

Всё максимально просто: в левое поле закидываем своё фото, а в правое — картинку с одеждой. Пара кликов и вы уже в другом костюме или без него 😲

Бесплатно можно использовать ТУТ

#nn #soft
⚡️ Полезные библиотеки Python

pdf2docx
— Python модуль который позволяет конвертировать PDF документы в docx для дальнейшего редактирования.

Установка:
$ pip install pdf2docx

Пример работы:
from pdf2docx import Converter

pdf_file = '/path/to/sample.pdf'
docx_file = 'path/to/sample.docx'

# convert pdf to docx
cv = Converter(pdf_file)

# all pages by default
cv.convert(docx_file)
cv.close()

⚙️ GitHub/Инструкция

#soft #code #python #github
Использование функции enumerate() для нумерации элементов в цикле

Когда вам нужно итерировать по списку и одновременно отслеживать индекс каждого элемента, использование функции enumerate() упрощает эту задачу, избавляя от необходимости вручную управлять счётчиком.

Использование enumerate() улучшает читаемость кода и упрощает работу с индексами при итерации по спискам, что особенно полезно при обработке больших данных или сложных списков.
⚙️ Temporian для предварительной обработки временных данных

ℹ️ Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении - с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.

🔗 Ссылочка на доку
📣 Как перехватывать сразу несколько исключений

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

Перехват исключений в Python помогает уменьшить количество возникающих в программе сбоев

В этой статье я расскажу, как перехватывать несколько исключений в одном блоке try/except в Python

🖥 Читать подробнее
Использование "словаря через .get()" для безопасного доступа к значениям

Когда вы работаете со словарями и вам нужно получить значение по ключу, но не хотите сталкиваться с ошибкой, если ключ отсутствует, метод .get() — отличное решение.

Использование метода .get() позволяет сделать код более устойчивым к ошибкам и упрощает обработку данных, где наличие ключей не всегда гарантировано.
Media is too big
VIEW IN TELEGRAM
▶️ Атрибуты класса, classmethod и staticmethod

Посмотрим в первом приближении на атрибуты класса, как с ними работать, для чего нужны декораторы classmethod и staticmethod

LEGB – правило продолжает действовать для простых имен переменных и их поиска
Для self атрибутов поиск идет сначала в объекте, потом в классе, затем у предков OCP(object-class-parent). То есть через self можно достучаться как к обычным методам/атрибутам, так и к классовым, статичным
Если через self пытаться поменять неизменяемый атрибут (строка) класса, то будет создана локальная копия, ее не увидят другие объекты класса
Если менять через self изменямый атрибут класса (список), то он изменится для всех объектов класса
cls – это ссылка на класс (не объект!), питон передает его под капотом. cls = Class
classmethod используется для работы с атрибутами класса и с другими методами класса. Часто используется для конструирования готовых объектов
staticmethod не получает ссылок под капотом, это просто функция связанная контекстом с классом. Используется редко и часто завуалированно

▶️ Смотреть на YouTube