4 ситуации из жизни лямбда-функций в Python. Сортировка последовательности данных
Первый допустимый вариант использования — сортировка последовательности данных при помощи встроенной функции
🔗 Python tricks
Первый допустимый вариант использования — сортировка последовательности данных при помощи встроенной функции
sorted()
. Если вы знакомы с методами списков объектов, то, скорее всего, вам известен похожий метод sort()
, который может сортировать объекты в списке в нужном порядке. Функция sorted()
используется во многих ситуациях. 🔗 Python tricks
typing.Literal
Например,
🔗 Python tricks
typing.Literal
— это тип данных, который позволяет указать не просто какой-то тип вроде str
, int
или float
, а конкретное значение этого типа.Например,
Literal[42]
означает, что в качестве значения ожидается только 42. Важно, что проверяется не только равенство значения, но и его тип (например, нельзя будет использовать False
, если ожидается 0).🔗 Python tricks
Функция itertools.chain()
Функция
Например, код сверху объединяет две строки в одну.
🔗 Python tricks
Функция
itertools.chain()
в Python объединяет несколько итераторов в один. Она принимает в качестве аргумента один или несколько итераторов, и возвращает итератор, который последовательно возвращает элементы из этих итераторов.Например, код сверху объединяет две строки в одну.
🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Нахождение минимальных и максимальных значений
Для нахождения минимального и максимального значений в наборе данных можно использовать две встроенные функции, а именно
🔗 Python tricks
Для нахождения минимального и максимального значений в наборе данных можно использовать две встроенные функции, а именно
min()
и max()
. Принцип использования обоих методов идентичен. В большинстве случаев мы предоставляем итерируемый объект, состоящий из нескольких элементов. Задавая аргумент key
, мы можем получить искомые минимальные и максимальные значения по тому же принципу, что и в случае с функцией sorted()
. 🔗 Python tricks
4 ситуации из жизни лямбда-функций в Python. Использование в качестве фабричной функции
Вероятно, вам известно, что помимо встроенного типа словаря
🔗 Python tricks
Вероятно, вам известно, что помимо встроенного типа словаря
dict
, в нашем распоряжении есть еще другой словарь под названием defaultdict
. Этот класс является подклассом типа dict
, который доступен в модуле collections
. Конструктор defaultdict
представляет собой defaultdict([
default_factory[,
...]])
. default_factory
вызывается для создания значения при условии, что в словаре еще нет заданного ключа. 🔗 Python tricks
string.capitalize
Метод capitalize() преобразует первый символ строки в прописную букву, а все остальные буквы алфавита в нижний регистр. Данный метод возвращает новую строку и не изменяет исходную строку.
🔗 Python tricks
Метод capitalize() преобразует первый символ строки в прописную букву, а все остальные буквы алфавита в нижний регистр. Данный метод возвращает новую строку и не изменяет исходную строку.
🔗 Python tricks
Принцип открытости/закрытости (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