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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
NumPy: array_split

Ты можешь использовать array split() для разделения массивов, передав ему массив, который хочешь разделить, и количество разделений. Если в массиве меньше элементов, чем требуется, он соответствующим образом корректируется с конца.

🔗 Python tricks
math.remainder

Функция math.remainder возвращает остаток от деления двух чисел. В отличие от оператора %, который возвращает остаток согласно правилам деления целых чисел, math.remainder учитывает точное представление чисел с плавающей точкой и возвращает остаток, сохраняя знак делимого.

🔗 Python tricks
Обычные арифметические операторы (ч.13)

Этот лайфхак полезен при работе с бинарными числами или другими типами данных, где операция побитового ИЛИ имеет смысл. Переопределение метода or позволяет объекту поддерживать стандартную операцию побитового ИЛИ в Python.

🔗 Python tricks
Использование defaultdict для работы со словарями

При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.

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

🔗 Python tricks
Расширение возможности сложения для пользовательских объектов

radd — это метод Python, который позволяет реализовать операцию сложения с обратным порядком операндов. Он вызывается, когда объект справа от оператора сложения не поддерживает соответствующий метод add.

Представьте, что у вас есть класс, который представляет пользовательские числа. Вы хотите, чтобы эти числа могли складываться с обычными числами Python (int, float) и другими экземплярами своего класса.

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

🔗 Python tricks
Расширение возможности вычитания для пользовательских объектов

Метод rsub в Python используется для реализации обратного вычитания, когда операнд слева не поддерживает соответствующий метод sub. Это позволяет определить, как ваш объект должен вычитаться из другого объекта.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать вычитание этих чисел как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые (ч.1)

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

🔗 Python tricks
Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые (ч.2)

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

Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку..

🔗 Python tricks
string.isascii

string.isascii используется для проверки того, содержит ли строка только символы ASCII (American Standard Code for Information Interchange). В этом примере string1 содержит только символы ASCII (латинские буквы, запятая и восклицательный знак), поэтому метод isascii() возвращает True. В то время как string2 содержит символы, которые не являются символами ASCII (русские буквы), поэтому метод isascii() возвращает False.

🔗 Python tricks
math prod

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

🔗 Python tricks
Расширение возможности операции побитового "и" для пользовательских объектов

Метод rand в Python используется для реализации операции побитового "и" (оператора &), когда операнд слева не поддерживает соответствующий метод and. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию побитового "и" с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские битовые данные, и мы хотим поддерживать операцию побитового "и" как с обычными числами Python (int), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
Расширение возможности битового сдвига вправо для пользовательских объектов

Метод rrshift в Python используется для реализации обратного битового сдвига вправо (оператора >>), когда операнд слева не поддерживает соответствующий метод rshift. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать битовый сдвиг вправо с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию битового сдвига вправо как с обычными числами Python (int), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
Расширение возможности битового сдвига влево для пользовательских объектов

Метод rlshift в Python используется для реализации обратного битового сдвига влево (оператора <<), когда операнд слева не поддерживает соответствующий метод lshift. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать битовый сдвиг влево с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию битового сдвига влево как с обычными числами Python (int), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
Расширение возможности возведения в степень для пользовательских объектов

Метод rpow в Python используется для реализации обратного возведения в степень (оператора **), когда операнд слева не поддерживает соответствующий метод pow. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию возведения в степень с различными типами данных.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать операцию возведения в степень как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
string.rfind

string,rfind используется для поиска последнего вхождения подстроки в строке. Он возвращает индекс первого символа найденной подстроки, начиная справа (с конца) строки. Если подстрока не найдена, метод возвращает -1.

🔗 Python tricks
math.hypot

math.hypot — это функция в модуле math в Python, которая вычисляет гипотенузу прямоугольного треугольника, заданного катетами ( x ) и ( y ). Эта функция полезна, когда нужно вычислить расстояние между двумя точками в двумерном пространстве (координаты ( x ) и ( y )) или для других задач, связанных с расчетом длин векторов.

🔗 Python tricks
Расширение возможности матричного умножения для пользовательских объектов

Метод rmatmul в Python используется для реализации обратного матричного умножения, когда операнд слева не поддерживает соответствующий метод matmul (оператор @). Этот метод особенно полезен для работы с матрицами или объектами, которые поддерживают матричное умножение.

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

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

🔗 Python tricks
Расширение возможности матричного умножения для пользовательских объектов

Метод rmatmul в Python используется для реализации обратного матричного умножения, когда операнд слева не поддерживает соответствующий метод matmul (оператор @). Этот метод особенно полезен для работы с матрицами или объектами, которые поддерживают матричное умножение.

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

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

🔗 Python tricks
Расширение возможности вычитания для пользовательских объектов

Метод rsub в Python используется для реализации обратного вычитания, когда операнд слева не поддерживает соответствующий метод sub. Это позволяет определить, как ваш объект должен вычитаться из другого объекта.

Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские числа, и мы хотим поддерживать вычитание этих чисел как с обычными числами Python (int, float), так и с другими экземплярами нашего класса.

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

🔗 Python tricks
Использование метода __round__(self[, ndigits])

Метод round(self[, ndigits]) в Python позволяет определить пользовательское поведение округления объекта до заданного количества знаков после запятой. Этот метод полезен для пользовательских классов, когда требуется точное управление процессом округления данных.

Метод round является специальным методом, который вызывается при использовании встроенной функции round() для объекта. Он может принимать необязательный аргумент ndigits, который указывает количество знаков после запятой до которого нужно округлить объект.

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

🔗 Python tricks
string.rsplit

string.rsplit разделяет строку на подстроки, используя заданный разделитель, начиная с конца строки (справа) и возвращая список подстрок. В первом примере метод rsplit() разделяет строку по запятой с пробелом и возвращает список подстрок. Во втором примере метод разделяет строку на максимально два разбиения, начиная с конца.

🔗 Python tricks