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

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

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

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

Нашему глазу будет очень легко зацепиться за неверное состояние, если оно в консоли при выводе будет выделено цветом. Примеров, полагаю, можно привести еще достаточно, где данное нововведение сыграло бы хоть малейшую роль. Что ж, даже для цветного вывода в консоль найдется свой модуль, а именно библиотека с названием Colorama.

🔗 Python tricks
pprint

Ни для кого не будет новостью, что при написании кода очень часто используется функцию print(). И все замечательно, когда нужно вывести небольшой объем информации, например, состояние булевой переменной. Но что, если нам нужно, допустим, вывести в консоль лист, в котором каждый элемент хранит в себе еще несколько состояний. Наглядно вывести подобную информацию с помощью одной строки кода, используя print(), уже не получится. Здесь нам с приятным для восприятия выводом поможет модуль pprint, он же Pretty Printer.

🔗 Python tricks
Профилирование

Профилирование — это процесс, который помогает при работе с данными и их обработке. Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных. Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.

🔗 Python tricks
string.replace

Метод replace() заменяет каждое соответствующее вхождение подстроки другой строкой. При необходимости ты можешь задать, сколько раз ты хочешь заменить исходную строку новой строкой. Если не указывать данное число, заменятся все вхождения.

🔗 Python tricks
Модуль howdoi

Модуль howdoi поможет найти ответ на многие основные вопросы, связанные с кодом, при этом весь процесс «вопрос-ответ» полностью происходит в консоли. Как же это работает? Модуль сравнивает Ваш вопрос с вопросами на сайте StackOverflow и предлагает Вам варианты кода из лучших ответов с данного ресурса.

🔗 Python tricks
Конкатенация строк

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

Более эффективный подход к решению этой задачи заключается в использовании функции join()

🔗 Python tricks
Словарь и set comprehensions

Словарю нужны ключ и значение.

Определяем ключ и значение в expression.

Синтаксис set comprehension не сильно отличается от list comprehension. Мы просто используем фигурные скобки вместо квадратных.

🔗 Python tricks
whylogs

whylogs
это библиотека для мониторинга и аудита машинного обучения.
Она помогает делать ML системы более прозрачными, стабильными и надёжными за счёт постоянного мониторинга и аудита.

Она используется для того, чтобы:

— Отслеживать статистику и метрики моделей и данных в режиме реального времени.

— Выявлять дрейф данных - изменения в распределении данных со временем.

— Собирать примеры исключений и выбросов.

— Проводить аудит моделей и данных в поисках проблем.

— Генерировать автоматические отчёты и визуализации.

— Интегрировать с MLflow, TensorBoard и другими инструментами.

🔗 Python tricks
Точка входа в программу

Конструкция if __name__ == '__main__' используется для того, чтобы определить, запущен ли файл модуля напрямую или импортирован из другого модуля.

Эта конструкция позволяет запустить какой-то код только при прямом вызове модуля, так как name будет равно 'main' только если модуль запущен напрямую.

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

🔗 Python tricks
Переименование файлов в Python

rename()
— это функция из модуля os, которая позволяет переименовывать файлы и директории.

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

Также позволяет перемещать файлы между разными директориями.

🔗 Python tricks
Тернарный оператор

Тернарный оператор — это оператор, позволяющий записать условную конструкцию if-else в одну строку.

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

В данном примере тернарный оператор используется:
— Для вывода одной из двух фраз в зависимости от условия a > b.
— Для присваивания переменной result одного из двух значений в зависимости от четности a.

🔗 Python tricks
Оператор pass

Оператор passэто особая конструкция, которая не делает ничего.
Она может применяться в следующих ситуациях:

— Заглушка для незавершенных блоков кода. Если написано только определение функции или класса, но нет тела - можно вставить pass, чтобы код был допустимым синтаксически.
— Пустые блоки в циклах. Вместо тела цикла можно написать pass, если на данном этапе нет необходимости выполнять какие-либо действия.
— Пропускать блоки кода в условных конструкциях. Если в ветви if-else ничего делать не нужно, можно использовать pass.
— Создание абстрактных базовых классов и заготовок методов, которые будут переопределены позже в подклассах.
— Обозначение функций или классов, которые планируется реализовать в будущем.

Как видно из примера, все числа от 0 до 9 выводятся кроме 5.

🔗 Python tricks
raise

Конструкция raise используется для генерации исключений.
Когда в коде происходит что-то непредвиденное или некорректное — можно сгенерировать исключение командой raise.

Например:
raise ValueError('Invalid value')

Здесь мы генерируем исключение ValueError с сообщением об ошибке.

После генерации исключения выполнение текущего кода прерывается и происходит переход в блок try/except для обработки этой ошибки.
Если исключение не будет обработано — программа завершится с ошибкой.

В этом примере функция calculate_discount проверяет входные данные. Если скидка меньше 0 или больше 100 — с помощью raise генерируется исключение ValueError с сообщением.

🔗 Python tricks
string.isnumeric

Метод isnumeric() проверяет, все ли символы в строке являются числовыми. Возвращает True, если все символы являются числовыми. В противном случае – False. В данном примере для symbol number возвращается True, так как “012345” являются числами. Для text возвращается False.

🔗 Python tricks
Set.add

Метод add() добавляет заданный элемент в множество. Если элемент уже присутствует, он не добавляет никакого элемента. Ты также можешь добавить кортежи в множество. Как и в случае с обычными элементами, один и тот же кортеж можно добавить только один раз.

🔗 Python tricks
Проверьте, удовлетворяет ли каждый элемент списка какому-либо условию

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

🔗 Python tricks
Группируйте различные элементы в списке на основе некоторого условия и превращайте его в словарь.

Польза данного метода заключается в том, что это позволяет удобно организовать данные по какому-то критерию (в данном случае, четность/нечетность чисел) и быстро обращаться к сгруппированным элементам по ключам словаря. Это упрощает работу с данными и позволяет легко выполнять операции над группами элементов.

🔗 Python tricks
Сортировать список, используя другой список в качестве индексов

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

🔗 Python tricks
list.sort

Метод sort() сортирует элементы списка по возрастанию или убыванию. В качестве альтернативы ты можешь использовать встроенную функцию sorted() для той же цели.

🔗 Python tricks
Инвертировать словарь

Этот код инвертирует словарь original_dict, сопоставляя значения ключам и наоборот, создавая новый словарь inverted_dict.

🔗 Python tricks