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

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

@Python_community_developers_bot
加入频道
Использование itertools для создания комбинаций и перестановок

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

Использование itertools позволяет быстро и эффективно генерировать комбинации и перестановки, что упрощает решение многих задач, связанных с перебором и анализом вариантов.
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() позволяет сделать код более устойчивым к ошибкам и упрощает обработку данных, где наличие ключей не всегда гарантировано.