Проверка на дубликаты
Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств set, которые могут содержать только уникальные элементы.
Вместо списков могут быть и кортежи, и словари. В последнем случае проверка будет выполняться только среди ключей словаря.
Разъяснивший Python
Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств set, которые могут содержать только уникальные элементы.
Вместо списков могут быть и кортежи, и словари. В последнем случае проверка будет выполняться только среди ключей словаря.
Разъяснивший Python
👎2👍1
Управление компьютером с помощью жестов руки!
Этот лайфхак позволяет переключать вкладки, регулировать громкость и даже управлять курсором, используя жесты руки перед веб-камерой.
Как это работает?
MediaPipe Hands отслеживает положение руки.
Определяются координаты указательного пальца.
Курсор двигается в соответствии с движениями руки.
Где это можно использовать?
Бесконтактное управление компьютером (например, в презентациях).
Игры с управлением руками (виртуальная мышь).
Регулировка громкости (например, сжатие руки — уменьшение громкости).
Разъяснивший Python
Этот лайфхак позволяет переключать вкладки, регулировать громкость и даже управлять курсором, используя жесты руки перед веб-камерой.
Как это работает?
MediaPipe Hands отслеживает положение руки.
Определяются координаты указательного пальца.
Курсор двигается в соответствии с движениями руки.
Где это можно использовать?
Бесконтактное управление компьютером (например, в презентациях).
Игры с управлением руками (виртуальная мышь).
Регулировка громкости (например, сжатие руки — уменьшение громкости).
Разъяснивший Python
Невидимые заметки в файле!
Этот лайфхак позволяет скрывать текстовые сообщения внутри файлов, так что их нельзя будет увидеть обычными способами!
Как это работает?
Мы используем невидимые символы Unicode для сокрытия текста прямо в файле. Такие символы не отображаются в редакторах, но остаются в файле!
Как это работает?
Встроенные в текст невидимые символы Unicode (\u200b, \u200c) кодируют биты скрытого сообщения.
Файл выглядит обычным текстом, но содержит невидимую информацию.
Сообщение можно извлечь с помощью специального кода.
Разъяснивший Python
Этот лайфхак позволяет скрывать текстовые сообщения внутри файлов, так что их нельзя будет увидеть обычными способами!
Как это работает?
Мы используем невидимые символы Unicode для сокрытия текста прямо в файле. Такие символы не отображаются в редакторах, но остаются в файле!
Как это работает?
Встроенные в текст невидимые символы Unicode (\u200b, \u200c) кодируют биты скрытого сообщения.
Файл выглядит обычным текстом, но содержит невидимую информацию.
Сообщение можно извлечь с помощью специального кода.
Разъяснивший Python
👎1
Сжатие списка
Этот скрипт удаляет «ложные» значения (False, None, 0 и пустую строку ' ') из списка. Используется встроенная функция filter(): c параметром None на первом месте она удалит из списка lst все значения, которые не вернут True по умолчанию.
Проверить вручную какое-либо значение на True/False можно с помощью функции bool(): bool(0) вернёт False, но bool('0') уже будет True, так как это непустая строка.
Разъяснивший Python
Этот скрипт удаляет «ложные» значения (False, None, 0 и пустую строку ' ') из списка. Используется встроенная функция filter(): c параметром None на первом месте она удалит из списка lst все значения, которые не вернут True по умолчанию.
Проверить вручную какое-либо значение на True/False можно с помощью функции bool(): bool(0) вернёт False, но bool('0') уже будет True, так как это непустая строка.
Разъяснивший Python
Исключение из очереди стека
Класс collections.deque() это обобщение стеков и очередей и представляет собой двустороннюю очередь. Двусторонняя очередь deque() поддерживает поточно-ориентированные, эффективные по памяти операции добавления и извлечения элементов последовательности с любой стороны с примерно одинаковой производительностью O(1) в любом направлении.
Разъяснивший Python
Класс collections.deque() это обобщение стеков и очередей и представляет собой двустороннюю очередь. Двусторонняя очередь deque() поддерживает поточно-ориентированные, эффективные по памяти операции добавления и извлечения элементов последовательности с любой стороны с примерно одинаковой производительностью O(1) в любом направлении.
Разъяснивший Python
Функция next() для генераторов
В большинстве обычных сценариев в программировании мы можем получить доступ к индексу и получить номер позиции, используя счётчик, который будет просто добавляемым значением
Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.
Разъяснивший Python
В большинстве обычных сценариев в программировании мы можем получить доступ к индексу и получить номер позиции, используя счётчик, который будет просто добавляемым значением
Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.
Разъяснивший Python
👍1
Как группирововать смежные списки
Группировку смежных списков, разумеется, легко осуществить в цикле
Разъяснивший Python
Группировку смежных списков, разумеется, легко осуществить в цикле
for
, особенно, используя zip()
, но это далеко не самый лучший способ. Чтобы сделать это проще и быстрее, напишем лямбда-выражение с zip
, которое сгруппирует смежные списки.Разъяснивший Python
❤1👍1
Тренарный оператор
Иногда элементы
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций
Разъяснивший Python
Иногда элементы
if
настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/elseИнтерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций
Разъяснивший Python
Бот для управления умным домом
Данный код позволяет управлять умным домом через Telegram, включая и выключая устройства по командам. Можно включать свет, розетки и кондиционеры. Также получишь данные с различных датчиков (температура, влажность). Тебе нужно устройство, которое будет получать команды. Подойдет Raspberry PI или ESP8266.
👉Читать
Разъяснивший Python
Данный код позволяет управлять умным домом через Telegram, включая и выключая устройства по командам. Можно включать свет, розетки и кондиционеры. Также получишь данные с различных датчиков (температура, влажность). Тебе нужно устройство, которое будет получать команды. Подойдет Raspberry PI или ESP8266.
👉Читать
Разъяснивший Python
Как красиво вывести список
Обычный формат вывода списка с помощью
Метод
Дополнительный бонус:
Разъяснивший Python
Обычный формат вывода списка с помощью
print
не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.Метод
join
преобразовывает список в строку, рассматривая каждый элемент как строку. Разделителем является та строка, для которой был вызван join. Он достаточно умен, чтобы не вставлять разделитель после последнего элемента.Дополнительный бонус:
join
работает линейное время. Никогда не создавайте строку складыванием элементов списка в цикле for
: это не просто некрасиво, это занимает квадратичное время!Разъяснивший Python
👎1
dataclasses.astuple()
Разъяснивший Python
dataclasses.astuple()
преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.Разъяснивший Python
Глобально уникальный идентификатор в Python
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Разъяснивший Python
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Разъяснивший Python
Антипаттерн недели: Ловушка с оператором
В Python оператор
Используйте
Разъяснивший Python
is
при сравнении строкВ Python оператор
is
проверяет, ссылаются ли две переменные на один и тот же объект в памяти, а не равны ли их значения. Это может приводить к неожиданным ошибкам при сравнении строк.Используйте
==
для сравнения значений строк, а не is
.Разъяснивший Python
Создание самоуничтожающегося Python-скрипта!
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
Где это можно использовать?
Создание временных скриптов для автоматизации.
Тестирование файлов без необходимости ручного удаления.
Написание скриптов-«призраков», которые исчезают после работы.
Разъяснивший Python
Этот код удаляет себя после выполнения, оставляя систему без следов!
Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.
Где это можно использовать?
Создание временных скриптов для автоматизации.
Тестирование файлов без необходимости ручного удаления.
Написание скриптов-«призраков», которые исчезают после работы.
Разъяснивший Python
❤🔥1
sys._current_frames()
Разъяснивший Python
sys._current_frames()
позволяет получить стеки вызовов всех активных потоков в программе. Это полезно для отладки многопоточных приложений.Разъяснивший Python
inspect.getgeneratorstate()
Разъяснивший Python
inspect.getgeneratorstate()
позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.Разъяснивший Python
sys.setswitchinterval()
Разъяснивший Python
sys.setswitchinterval()
позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.Разъяснивший Python
inspect.currentframe()
Разъяснивший Python
inspect.currentframe()
позволяет получить текущий стек вызовов и информацию о выполняемом коде. Это полезно для отладки, логирования и анализа исполнения программы.Разъяснивший Python
Объединение списков без цикла
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?
Пусть и менее краткий, но более эффективный способ – применение модуля
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки
Разъяснивший Python
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?
Пусть и менее краткий, но более эффективный способ – применение модуля
itertools
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки
collections
(контейнерные структуры данных) и itertools
(операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».Разъяснивший Python
Запускаем код, спрятанный в изображении!
Этот лайфхак позволяет прятать Python-код в PNG-картинке и запускать его прямо из неё!
Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.
Разъяснивший Python
Этот лайфхак позволяет прятать Python-код в PNG-картинке и запускать его прямо из неё!
Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.
Разъяснивший Python