Принцип открытости/закрытости (OCP)
Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.
Иными словами код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.
🔗 Python tricks
Принцип открытости/закрытости (OCP) — один из основополагающих принципов объектно-ориентированного программирования (ООП), сформулированный Бертраном Мейером. Он гласит: Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.
Иными словами код должен быть легко расширяемым для добавления новых функций или поведения. Существующий код не должен меняться при добавлении новых функций.
🔗 Python tricks
Функция heapq.heapify()
Функция
🔗 Python tricks
Функция
heapq.heapify()
используется для преобразования списка в кучу (heap). Куча — это особая структура данных, представляющая собой полное бинарное дерево, в котором каждый родительский элемент меньше или равен своим дочерним элементам.🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Использование лямбда с функциями высшего порядка (не самый лучший способ)
Под функциями высшего порядка подразумеваются такие функции, как
🔗 Python tricks
Под функциями высшего порядка подразумеваются такие функции, как
map()
и filter()
. Важно помнить, что всё в Python является объектом, включая функции. Функции, принимающие другие функции в качестве аргументов или возвращающие их в качестве результата, называются функциями высшего порядка. 🔗 Python tricks
Логирование в Python с помощью Logzero. Установка
Logzero — это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и 3. Чтобы установить logzero с помощью pip, выполните следующий код.
🔗 Python tricks
Logzero — это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и 3. Чтобы установить logzero с помощью pip, выполните следующий код.
🔗 Python tricks
Функция math.gcd()
Функция
Синтаксис:
Возвращаемое значение:
целое число, являющееся НОД
Функция
math.gcd()
используется для вычисления наибольшего общего делителя (НОД) двух целых чисел. НОД — это наибольшее число, которое является делителем обоих чисел.Синтаксис:
math.gcd(a, b)Аргументы:
a
: первое целое числоb
: второе целое числоВозвращаемое значение:
целое число, являющееся НОД
a
и b
🔗 Python tricksХод короля
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
Программа должна вывести «YES», если из первой клетки ходом короля можно попасть во вторую, или «NO» в противном случае.
🔗 Python tricks
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
Программа должна вывести «YES», если из первой клетки ходом короля можно попасть во вторую, или «NO» в противном случае.
🔗 Python tricks
Шифрование и расшифровка паролей
Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.
В приведенной выше реализации ключ шифрования генерируется с помощью метода Fernet.generate_key() и сохраняется в файле для дальнейшего использования.
Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography , где текст шифруется с помощью метода encrypt() и расшифровывается с помощью метода decrypt().
🔗 Python tricks
Приведенный ниже скрипт выполняет шифрование и дешифрование текста с использованием пакета cryptography.
В приведенной выше реализации ключ шифрования генерируется с помощью метода Fernet.generate_key() и сохраняется в файле для дальнейшего использования.
Шифрование и дешифрование текста выполняются с использованием класса Fernet из пакета cryptography , где текст шифруется с помощью метода encrypt() и расшифровывается с помощью метода decrypt().
🔗 Python tricks
string.rjust
Метод rjust() выравнивает строку по правому краю до заданной ширины, используя указанный символ. Если ширина меньше или равна длине строки, возвращается исходная строка.
🔗 Python tricks
Метод rjust() выравнивает строку по правому краю до заданной ширины, используя указанный символ. Если ширина меньше или равна длине строки, возвращается исходная строка.
🔗 Python tricks
Логирование в Python с помощью Logzero. Запись логов в файл
Многие пользователи Python предпочитают записывать логи в файл. При запуске системы их можно просматривать для проверки ошибок и обслуживания. Вы также можете установить файл для сохранения всех лог-записей в legzero.
Мы импортируем логгер и лог-файл из logezero. Метод logfile используется, чтобы настроить лог-файл для сохранения хранящихся в логе записей.
🔗 Python tricks
Многие пользователи Python предпочитают записывать логи в файл. При запуске системы их можно просматривать для проверки ошибок и обслуживания. Вы также можете установить файл для сохранения всех лог-записей в legzero.
Мы импортируем логгер и лог-файл из logezero. Метод logfile используется, чтобы настроить лог-файл для сохранения хранящихся в логе записей.
🔗 Python tricks
Логирование в Python с помощью Logzero. Базовый пример
Импортируем логгер из logzero в файл python и попробуем 4 примера уровней логирования. Как видим, каждый уровень имеет свой цвет, что значительно упрощает его определение.
🔗 Python tricks
Импортируем логгер из logzero в файл python и попробуем 4 примера уровней логирования. Как видим, каждый уровень имеет свой цвет, что значительно упрощает его определение.
🔗 Python tricks
Функция math.gcd()
Функция
Синтаксис:
Аргументы:
Возвращаемое значение:
целое число, являющееся НОД
🔗 Python tricks
Функция
math.gcd()
используется для вычисления наибольшего общего делителя (НОД) двух целых чисел. НОД — это наибольшее число, которое является делителем обоих чисел.Синтаксис:
math.gcd(a, b)
Аргументы:
a
: первое целое числоb
: второе целое числоВозвращаемое значение:
целое число, являющееся НОД
a
и b
🔗 Python tricks
Напишите функцию на Python, которая принимает на вход список чисел и возвращает наибольшую возрастающую подпоследовательность (непоследовательные числа, идущие в порядке возрастания) из исходного списка
Для решения этой задачи используется динамическое программирование. Мы создаем массив
Пример использования:
Эта функция найдет наибольшую возрастающую подпоследовательность из списка
🔗 Python tricks
Для решения этой задачи используется динамическое программирование. Мы создаем массив
dp
, где dp[i]
представляет собой длину наибольшей возрастающей подпоследовательности, заканчивающейся в nums[i]
. Затем мы выполняем двойной цикл, чтобы найти наибольшую длину для каждого элемента. После этого мы определяем саму подпоследовательность, начиная с наибольшей длины и двигаясь обратно по массиву dp
.Пример использования:
python
nums = [3, 12, 5, 8, 10, 2, 1]
result = longest_increasing_subsequence(nums)
print(result) # Output: [3, 5, 8, 10]
Эта функция найдет наибольшую возрастающую подпоследовательность из списка
[3, 12, 5, 8, 10, 2, 1]
, которой будет [3, 5, 8, 10]
, и выведет ее в консоль.🔗 Python tricks
Логирование в Python с помощью Logzero. Установка минимального уровня логирования
Установка уровня логирования предполагает выбор степени важности данного лог-сообщения. Изменить уровень логирования для обработчика файла можно с помощью аргумента loglevel в методе logfile.
В приведенном примере мы установили loglevel как
🔗 Python tricks
Установка уровня логирования предполагает выбор степени важности данного лог-сообщения. Изменить уровень логирования для обработчика файла можно с помощью аргумента loglevel в методе logfile.
В приведенном примере мы установили loglevel как
warning
. Следовательно все лог-записи ниже уровня warning не будут сохранены в лог-файл.🔗 Python tricks
Логирование в Python с помощью Logzero. Ротация лог-файла
Не стоит сохранять все записи в один лог-файл, поскольку он становится массивным и увеличивает нагрузку на систему.
Вы можете использовать параметры maxBytes и backupCount для ротации файла с заранее заданным размером. Когда размер будет превышен, файл закроется, а новый файл для вывода откроется автоматически. Переключение происходит каждый раз, когда длина текущего лог-файла составляет почти maxBytes. Если maxBytes или backupCount равен нулю, переключение не происходит.
🔗 Python tricks
Не стоит сохранять все записи в один лог-файл, поскольку он становится массивным и увеличивает нагрузку на систему.
Вы можете использовать параметры maxBytes и backupCount для ротации файла с заранее заданным размером. Когда размер будет превышен, файл закроется, а новый файл для вывода откроется автоматически. Переключение происходит каждый раз, когда длина текущего лог-файла составляет почти maxBytes. Если maxBytes или backupCount равен нулю, переключение не происходит.
🔗 Python tricks
Узнаем разницу в днях между датами представленными в виде строк
В данном коде мы используем функцию
🔗 Python tricks
В данном коде мы используем функцию
strptime
из модуля datetime
, чтобы преобразовать строки в объекты datetime
. Затем мы вычисляем разницу между датами с помощью оператора -
и получаем абсолютное значение разницы с помощью функции abs
. Наконец, мы получаем разницу в днях, используя атрибут days
разницы объекта.🔗 Python tricks
Разбиваем видео на n кол-во изображений
Для разбиения видео на n количество изображений вам понадобится использовать библиотеку OpenCV в Python.
В этом примере функция
Обратите внимание, что код использует целочисленное деление
🔗 Python tricks
Для разбиения видео на n количество изображений вам понадобится использовать библиотеку OpenCV в Python.
В этом примере функция
video_to_images
принимает путь к видео (video_path
) и количество желаемых изображений (frames_count
). Она открывает видеофайл, читает каждый кадр и сохраняет каждый "шаг" кадров как отдельное изображение. Затем функция прекращает обработку, когда необходимое количество изображений сохранено.Обратите внимание, что код использует целочисленное деление
//
и целочисленное преобразование int()
для обеспечения, чтобы каждое изображение было сохранено через примерно одинаковое количество кадров, чтобы равномерно распределить их по времени видео.🔗 Python tricks
Усыпляем программу
Иногда возникает необходимость остановить выполнение программы, чтобы можно было выполнить несколько других операций, или просто из-за требуемой утилиты. В такой ситуации может пригодиться функция sleep(), которая обеспечивает точный и гибкий способ остановки потока кода на любой период времени.
В нашем примере время начала и время окончания будут напечатаны с задержкой в 6 секунд.
🔗 Python tricks
Иногда возникает необходимость остановить выполнение программы, чтобы можно было выполнить несколько других операций, или просто из-за требуемой утилиты. В такой ситуации может пригодиться функция sleep(), которая обеспечивает точный и гибкий способ остановки потока кода на любой период времени.
В нашем примере время начала и время окончания будут напечатаны с задержкой в 6 секунд.
🔗 Python tricks
dict.setdefault
setdefault() возвращает: значение ключа, если он есть в словаре; ничего, если ключа нет в словаре и значение по умолчанию не указано
default value, если ключ отсутствует в словаре и указано default value.
🔗 Python tricks
setdefault() возвращает: значение ключа, если он есть в словаре; ничего, если ключа нет в словаре и значение по умолчанию не указано
default value, если ключ отсутствует в словаре и указано default value.
🔗 Python tricks
Число в список цифр
Превращает целое число в список его цифр.
Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.
🔗 Python tricks
Превращает целое число в список его цифр.
Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.
🔗 Python tricks
Первая буква в верхнем регистре
Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.
🔗 Python tricks
Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.
🔗 Python tricks
Печать строки N раз
Этот пример может печатать любую строку n раз без использования циклов Python.
🔗 Python tricks
Этот пример может печатать любую строку n раз без использования циклов Python.
🔗 Python tricks