Смешивание математики с дробями
В последнем примере мы принесем некоторые функции из математической библиотеки и смешаем их с дробными представлениями.
#theory // Just Python
В последнем примере мы принесем некоторые функции из математической библиотеки и смешаем их с дробными представлениями.
#theory // Just Python
Округление дробей
Можно округлить дроби на количество цифр, которое мы хотим в знаменателе.
#theory // Just Python
Можно округлить дроби на количество цифр, которое мы хотим в знаменателе.
#theory // Just Python
Эффективное использование метода imatmul(self, other)
Метод imatmul(self, other) в Python позволяет определить поведение оператора матричного умножения с присваиванием (@=) для пользовательских классов. Это полезно для работы с матрицами и другими структурами данных, поддерживающими матричное умножение, делая код более выразительным и эффективным.
Метод imatmul — это специальный метод, который позволяет реализовать матричное умножение с присваиванием. Когда оператор @= применяется к объекту, Python вызывает этот метод, позволяя изменить объект на месте в соответствии с результатом матричного умножения.
Использование метода imatmul позволяет легко реализовать матричное умножение с присваиванием для пользовательских классов. Это делает код более чистым и удобным для чтения, а также улучшает производительность за счет изменения объектов на месте.
#theory // Just Python
Метод imatmul(self, other) в Python позволяет определить поведение оператора матричного умножения с присваиванием (@=) для пользовательских классов. Это полезно для работы с матрицами и другими структурами данных, поддерживающими матричное умножение, делая код более выразительным и эффективным.
Метод imatmul — это специальный метод, который позволяет реализовать матричное умножение с присваиванием. Когда оператор @= применяется к объекту, Python вызывает этот метод, позволяя изменить объект на месте в соответствии с результатом матричного умножения.
Использование метода imatmul позволяет легко реализовать матричное умножение с присваиванием для пользовательских классов. Это делает код более чистым и удобным для чтения, а также улучшает производительность за счет изменения объектов на месте.
#theory // Just Python
Реализация операции вычитания на месте для пользовательского класса
Метод isub в Python используется для реализации операции вычитания на месте (оператора -=). Этот метод позволяет изменять объект "на месте", что может быть полезно для оптимизации производительности и управления памятью.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательский список чисел. Мы хотим поддерживать операцию вычитания на месте как с обычными числами Python (int), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет вашему классу поддерживать более гибкие и удобные операции вычитания на месте, что улучшает производительность и удобство использования, а также помогает избежать лишних копий данных.
#theory // Just Python
Метод isub в Python используется для реализации операции вычитания на месте (оператора -=). Этот метод позволяет изменять объект "на месте", что может быть полезно для оптимизации производительности и управления памятью.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательский список чисел. Мы хотим поддерживать операцию вычитания на месте как с обычными числами Python (int), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет вашему классу поддерживать более гибкие и удобные операции вычитания на месте, что улучшает производительность и удобство использования, а также помогает избежать лишних копий данных.
#theory // Just Python
Расширение возможности операции побитового исключающего "или" для пользовательских объектов
Метод rxor в Python используется для реализации операции побитового исключающего "или" (оператора ^), когда операнд слева не поддерживает соответствующий метод xor. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию побитового исключающего "или" с различными типами данных.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские битовые данные, и мы хотим поддерживать операцию побитового исключающего "или" как с обычными числами Python (int), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживать операции побитового исключающего "или" с различными типами данных, что повышает его гибкость и удобство использования.
#theory // Just Python
Метод rxor в Python используется для реализации операции побитового исключающего "или" (оператора ^), когда операнд слева не поддерживает соответствующий метод xor. Этот метод полезен для работы с пользовательскими объектами, когда требуется поддерживать операцию побитового исключающего "или" с различными типами данных.
Рассмотрим пример, в котором у нас есть класс, представляющий пользовательские битовые данные, и мы хотим поддерживать операцию побитового исключающего "или" как с обычными числами Python (int), так и с другими экземплярами нашего класса.
Этот лайфхак позволяет сделать ваш класс более универсальным и поддерживать операции побитового исключающего "или" с различными типами данных, что повышает его гибкость и удобство использования.
#theory // Just Python
Сравнение быстродействия def и lambda-функций Python. Производные функции
Иными словами — функция второго уровня вложенности служит для многократного вызова и создания во время каждого функции третьего уровня вложенности.
#theory // Just Python
Иными словами — функция второго уровня вложенности служит для многократного вызова и создания во время каждого функции третьего уровня вложенности.
#theory // Just Python
Сравнение быстродействия def и lambda-функций Python. Производные функции часть 2
А производная для функции построения графика — это же самая функция с определенными аргументами.
Мы будем проверять скорость создания и скорость выполнения разного вида функций.
Вернёмся к первому. В случае проверки скорости создания функции, функция_для_замера() будет иметь одну цель — создать внутри себя def или lambda функцию. Её мы будем вызывать множество раз, и каждый раз она будет создавать одну и ту же функцию заново.
#theory // Just Python
А производная для функции построения графика — это же самая функция с определенными аргументами.
Мы будем проверять скорость создания и скорость выполнения разного вида функций.
Вернёмся к первому. В случае проверки скорости создания функции, функция_для_замера() будет иметь одну цель — создать внутри себя def или lambda функцию. Её мы будем вызывать множество раз, и каждый раз она будет создавать одну и ту же функцию заново.
#theory // Just Python
Думаете, Биткоин золотая жила?
Чушь. В этом месяце выйдет 6 монет, который обгонят его годовой рост за неделю. Их список скоро выложат в канале Андрей Соколов.
Это блог трейдера, который за 5 лет начальные $10 тыс. превратил в $2 млн. Он находит монеты, которые взлетают в 3-5 раз в течение недели-двух и рассказывает о таких сделках в своем канале.
Все сделки, анализы и наработки публикует в своём блоге. Загляните сами. Ссылка удалится через сутки, имейте в виду 👇
Перейти в канал и посмотеть список самых перспективных монет на июнь →
Чушь. В этом месяце выйдет 6 монет, который обгонят его годовой рост за неделю. Их список скоро выложат в канале Андрей Соколов.
Это блог трейдера, который за 5 лет начальные $10 тыс. превратил в $2 млн. Он находит монеты, которые взлетают в 3-5 раз в течение недели-двух и рассказывает о таких сделках в своем канале.
Все сделки, анализы и наработки публикует в своём блоге. Загляните сами. Ссылка удалится через сутки, имейте в виду 👇
Перейти в канал и посмотеть список самых перспективных монет на июнь →
Сравнение быстродействия def и lambda-функций Python. Производные функции часть 3
Слабонервным людям, ненавидящим многоуровневые вложения, не читать.
Для ранее описанных общих функций можно создавать бесконечно много проиводных. Для производной замера скорости структура такая
#theory // Just Python
Слабонервным людям, ненавидящим многоуровневые вложения, не читать.
Для ранее описанных общих функций можно создавать бесконечно много проиводных. Для производной замера скорости структура такая
#theory // Just Python
locals() внутри метода
locals() внутри функции возвращает локальную переменную, обратите внимание, что глобальные переменные являются частью глобального словаря таблицы символов.
#theory // Just Python
locals() внутри функции возвращает локальную переменную, обратите внимание, что глобальные переменные являются частью глобального словаря таблицы символов.
#theory // Just Python
Функция set union() в Python
В теории множеств set union() – это набор всех элементов в коллекции наборов. На следующем изображении показаны операции объединения наборов.
Класс set union() в Python предоставляет функцию union() для получения объединения наборов. Результатом является новый набор со всеми элементами из коллекции наборов.
#theory // Just Python
В теории множеств set union() – это набор всех элементов в коллекции наборов. На следующем изображении показаны операции объединения наборов.
Класс set union() в Python предоставляет функцию union() для получения объединения наборов. Результатом является новый набор со всеми элементами из коллекции наборов.
#theory // Just Python
Добавление матрицы
Код для сложения матриц достаточно сложен для написания вручную. Благодаря модулю numpy мы можем просто использовать оператор + для добавления матрицы. Итак, в следующем примере кода мы увидим, как писать код сложения вручную, а также с помощью оператора +.
#theory // Just Python
Код для сложения матриц достаточно сложен для написания вручную. Благодаря модулю numpy мы можем просто использовать оператор + для добавления матрицы. Итак, в следующем примере кода мы увидим, как писать код сложения вручную, а также с помощью оператора +.
#theory // Just Python
Метод Naive
В методе Naive цикл for используется для обхода второго списка. После этого элементы из второго списка добавляются к первому списку. Первый список является объединением первого и второго списков.
#theory // Just Python
В методе Naive цикл for используется для обхода второго списка. После этого элементы из второго списка добавляются к первому списку. Первый список является объединением первого и второго списков.
#theory // Just Python
Профилирование и статистика кода
Какой разговор о профилировании питона обходится без описания cProfile — одного из стандартных модулей Python? Уверен, каждый программист Python хоть раз пробовал запустить cProfile.
#theory // Just Python
Какой разговор о профилировании питона обходится без описания cProfile — одного из стандартных модулей Python? Уверен, каждый программист Python хоть раз пробовал запустить cProfile.
#theory // Just Python
Создание мелких копий существующих списков
Создание мелкой копии означает, что копируется только структура элементов, но не сами элементы. Обе копии списка совместно используют одинаковые экземпляры отдельных элементов.
Если же вам необходимо продублировать абсолютно всё, включая и элементы, то необходимо создать глубокую копию списка (copy.deepcopy(x)). Для этой цели пригодится встроенный модуль в Python copy.
#theory // Just Python
Создание мелкой копии означает, что копируется только структура элементов, но не сами элементы. Обе копии списка совместно используют одинаковые экземпляры отдельных элементов.
Если же вам необходимо продублировать абсолютно всё, включая и элементы, то необходимо создать глубокую копию списка (copy.deepcopy(x)). Для этой цели пригодится встроенный модуль в Python copy.
#theory // Just Python
Ограничение использования процессора и памяти (ч.1)
Если вместо того, чтобы оптимизировать программу, или улучшить то, как она пользуется процессором, вам нужно просто задать жёсткое ограничение на доступные ей ресурсы, можно воспользоваться соответствующей библиотекой
Тут показано ограничение процессорного времени и объёма памяти. Для того чтобы ограничить использование программой процессора, мы сначала получаем значения нежёсткого и жёсткого (hard) лимитов для конкретного ресурса (RLIMIT_CPU).
#theory // Just Python
Если вместо того, чтобы оптимизировать программу, или улучшить то, как она пользуется процессором, вам нужно просто задать жёсткое ограничение на доступные ей ресурсы, можно воспользоваться соответствующей библиотекой
Тут показано ограничение процессорного времени и объёма памяти. Для того чтобы ограничить использование программой процессора, мы сначала получаем значения нежёсткого и жёсткого (hard) лимитов для конкретного ресурса (RLIMIT_CPU).
#theory // Just Python
Ограничение использования процессора и памяти (ч.2)
Затем мы устанавливаем лимит, используя некое число секунд, задаваемое аргументом seconds, и ранее полученное значение жёсткого лимита. После этого мы регистрируем обработчик signal, который, при превышении выделенного программе процессорного времени, инициирует процедуру выхода. В случае с памятью, мы, опять же, получаем значения для нежёсткого и жёсткого лимитов, после чего устанавливаем ограничение с помощью метода setrlimit, которому передаём размер ограничения (size) и ранее полученное значение жёсткого лимита.
#theory // Just Python
Затем мы устанавливаем лимит, используя некое число секунд, задаваемое аргументом seconds, и ранее полученное значение жёсткого лимита. После этого мы регистрируем обработчик signal, который, при превышении выделенного программе процессорного времени, инициирует процедуру выхода. В случае с памятью, мы, опять же, получаем значения для нежёсткого и жёсткого лимитов, после чего устанавливаем ограничение с помощью метода setrlimit, которому передаём размер ограничения (size) и ранее полученное значение жёсткого лимита.
#theory // Just Python
Сравнение быстродействия def и lambda-функций Python. Функции для упрощения жизни
Кому захочется повторять одно и то действие, но с разными параметрами? Никому. Поэтому, есть некоторые вспомогательные функции, для рисования графика по заданным параметрам, для создания черепахи. Кстати, о последнем — черепахи тоже заносятся в общий словарь.
#theory // Just Python
Кому захочется повторять одно и то действие, но с разными параметрами? Никому. Поэтому, есть некоторые вспомогательные функции, для рисования графика по заданным параметрам, для создания черепахи. Кстати, о последнем — черепахи тоже заносятся в общий словарь.
#theory // Just Python
Конкатенация строк
Если нужно конкатенировать список строк, сделать это можно в цикле
Более эффективный подход к решению этой задачи заключается в использовании функции
#theory // Just Python
Если нужно конкатенировать список строк, сделать это можно в цикле
for, по одной добавляя строки к итоговому результату. Однако такой подход будет весьма неэффективным, особенно в том случае, если список оказывается достаточно длинным. В Python строки являются иммутабельными сущностями. В результате каждая операция по конкатенации строк означает необходимость копирования пары строк в новую строку.Более эффективный подход к решению этой задачи заключается в использовании функции
join()#theory // Just Python