Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Библиотека scikit-image

scikit-image — это библиотека для обработки изображений. scikit-image также удобна для применения в задачах компьютерного зрения.

Библиотека содержит множество полезных инструментов для работы с изображениями, включая:
— Фильтрация и преобразования изображений (размытие, поворот, масштабирование и т. д.).
— Сегментация изображений и анализ регионов.
— Обнаружение особых точек и линий (краев, углов, границ).
— Морфологические операции.
— Анализ текстур и цветов.
— Восстановление изображений и удаление шумов.

🔗 Python tricks
filter

Функция filter() выбирает элементы из итерируемого объекта (списка, кортежа и т. д.) на основе выходных данных функции. Функция применяется к каждому элементу итерируемого объекта.

🔗 Python tricks
py-spy

Следит за тем, что и как выполняет программа, сколько времени и ресурсов она тратит на разные задачи, мониторит ее работу. Py-spy сначала обращается к системе компьютера, а затем сохраняет и выводит полученную информацию, которую можно использовать в работе. Вам не нужно перезагружать или модифицировать работающую программу: инструмент помогает получать информацию, не затрагивая исходный код. Библиотека удобна при поиске багов, особенно если нельзя переписать код.

🔗 Python tricks
Pympler

Мониторит и анализирует память, которая используется при исполнении кода программ на Python. Инструмент находит ее избыточное потребление, утечки и другие баги. С помощью Pympler можно узнать все о размере и длительности процессов приложения на Python за время работы.

🔗 Python tricks
Реализуйте алгоритм сортировки слиянием (Merge Sort) на Python. Напишите код и объясните, как работает этот алгоритм. Расскажите о его сложности и возможных оптимизациях.
Объяснение:
Алгоритм сортировки слиянием (Merge Sort) использует стратегию «разделяй и властвуй». Он состоит из двух основных шагов:
Разделение (Divide): Массив разделяется на две равные (при четном числе элементов) или почти равные (при нечетном) части. Этот процесс рекурсивно выполняется для каждой из подпоследовательностей.
Слияние (Merge): Отсортированные подпоследовательности сливаются обратно в один отсортированный массив.

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

🔗 Python tricks
Метод swapcase()

Метод swapcase() в Python является встроенным методом строк (str), который создает новую строку, меняя регистр каждой буквы в исходной строке. Если буква была в верхнем регистре, она будет преобразована в нижний регистр, и наоборот.

Результатом будет строка 'hELLO, wORLD!'.

🔗 Python tricks
Функция compress

Функция compress из itertools используется для фильтрации элементов входной последовательности на основе соответствующих элементов булевой последовательности.

Код с картинки создает новый список, включающий только элементы data, для которых соответствующее значение в selectors является True. В данном случае результат будет [1, 3, 5].

🔗 Python tricks
Метод math.perm()

Метод math.perm() в Python возвращает количество способов выбрать k элементов из n элементов с порядком и без повторения.

Синтаксис:
math.perm(n, k)

Где:
n: Количество элементов из которых выбираются k элементов.
k: Количество элементов, которые выбираются.

В первом примере метод возвращает количество способов выбрать 3 элемента из 5 элементов. В результате получается 60 способов.
Во втором примере метод возвращает количество способов выбрать 5 элементов из 10 элементов. В результате получается 252 способа.

🔗 Python tricks
Сцепление исключений

Сцепление исключений (exception chaining) позволяет сохранять информацию об исключении, которое произошло во вложенном блоке кода, в исключении более высокого уровня. Это полезно для отслеживания причин ошибок и обеспечения более полной информации о том, что произошло.

В примере на картинке, если возникает ZeroDivisionError, мы попадаем в блок except, а затем выполняем вложенный код, который вызывает ValueError. С помощью ключевого слова from мы указываем, что исключение ValueError является следствием (частью) исключения ZeroDivisionError. Таким образом, информация об исключении ZeroDivisionError сохраняется.

🔗 Python tricks
Библиотека qiskit

Qiskit — это библиотека для работы с квантовыми вычислениями и квантовым программированием на Python.
Она позволяет реализовывать и тестировать квантовые алгоритмы на компьютере.

Основные возможности Qiskit:
— Создание и симуляция квантовых цепей.
— Работа с квантовыми алгоритмами (Гровера, Шора, квантовое Фурье-преобразование и др.).
— Оптимизация и компиляция квантовых программ.
— Интеграция с реальным квантовым оборудованием (квантовыми процессорами).
— Визуализация и анализ квантовых цепей.

🔗 Python tricks
eval()

Eval
() — это встроенная функция, которая позволяет выполнять строку кода как выражение и возвращать результат.

Eval() принимает строку в качестве аргумента и выполняет ее как код, также можно передать переменные и выражения в строку и eval() вычислит их.

Eval() также может использоваться для динамического выполнения и компиляции кода. Однако, эту функцию опасно использовать с вводом пользователя, т. к. это может привести к выполнению произвольного кода.

🔗 Python tricks
NumPy

Предназначена для работы с числами и сложной математикой. В первую очередь она облегчает расчеты с матрицами и многомерными массивами — именно в таком виде мы передаем любые данные на вход алгоритмам и моделям в методах глубокого обучения. Поэтому NumPy входит в базовый стек библиотек для Machine Learning.

🔗 Python tricks
factory_boy

Еще один инструмент для генерирования данных. В отличие от Faker, он генерирует фикстуры — блоки кода, которые выполняются до или после тестовых функций. Фикстуры помогают привести приложение в нужное состояние, задать исходные данные или сгенерировать информацию для теста. Эта библиотека упрощает их создание и применяется в основном в unit-тестировании.

🔗 Python tricks
Функция sample()

Функция sample() модуля random в Python возвращает случайную выборку элементов из последовательности. В первом параметре функции указываем последовательность, во втором параметре — количество элементов, которые мы хотим выбрать случайным образом.

🔗 Python tricks
Функция tell()

Функция tell() используется для получения текущей позиции указателя в потоке данных. Она применяется чаще всего при работе с файлами, но также может использоваться с другими типами потоков, например, сокетами или консольным вводом.

Возвращаемое значение: целое число, указывающее положение указателя в байтах от начала потока.
Аргументы: tell() не принимает никаких аргументов.

🔗 Python tricks
PyBrain

PyBrain — это библиотека машинного обучения, которая предоставляет широкий набор алгоритмов и инструментов для обучения нейросетей и других задач машинного обучения.

PyBrain имеет ряд преимуществ, которые делают его привлекательным для разработчиков машинного обучения:
— Простота использования: PyBrain имеет простой и понятный синтаксис, который делает его удобным для изучения.
— Модульность: PyBrain является модульной библиотекой, что позволяет разработчикам создавать собственные алгоритмы и инструменты.
— Производительность: PyBrain написан на Python, который является высокопроизводительным языком.

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

🔗 Python tricks
Использование генераторов списков

Генераторы списков используются для создания новых списков из других итерируемых объектов. Так как генератор возвращает списки, его описание представляет собой выражение, включённое в квадратные скобки, выполняемое для каждого элемента списка.

Сюда же входит и описание цикла for, выполняющего проход по каждому элементу. Генераторы списков позволяют ускорить работу со списками за счёт того, что интерпретатор Python оптимизирован в расчёте на шаблоны, повторяющиеся при обходе списка.

🔗 Python tricks
Faker

Для тестирования функциональности приложения часто нужно заполнять его данными, например о пользователях. Использовать реальные персональные данные в такой ситуации некорректно и небезопасно. Поэтому лучше воспользоваться Faker — библиотекой, которая помогает сгенерировать большое количество ненастоящей информации. Это могут быть ФИО, телефоны, даты рождения, данные карточек и многое другое.

🔗 Python tricks
freezegun

Библиотека поможет, если нужно протестировать работу программы в конкретный период. Она «замораживает» параметры даты и времени на определенной точке, нужной программисту. Это может быть полезно, например, если тестируемая программа должна работать по-разному в зависимости от времени суток или дня недели.

🔗 Python tricks
🎄 ТРОГАЙТЕ, это на Новый год! 

Профессия «Python-разработчик» 🐍

🎁  Скидка до 120 000 р. + доступ ко второй профессии в подарок. А еще 1 из 4 бонусов на выбор при покупке курса!

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

Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.

📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия и стоит ли продолжать!

Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.