Проверка строки на палиндром
Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.
Более сложный вариант, который сможет проверить строку «А роза упала на лапу Азора», предлагаем написать самостоятельно. Общая идея: свести сложную строку к простой, хоть и длинной 'арозаупаланалапуазора'. Вам пригодятся функции строк
Разъяснивший Python
Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.
Более сложный вариант, который сможет проверить строку «А роза упала на лапу Азора», предлагаем написать самостоятельно. Общая идея: свести сложную строку к простой, хоть и длинной 'арозаупаланалапуазора'. Вам пригодятся функции строк
.lower(), .join(), а также, возможно, преобразование строки в список.Разъяснивший Python
❤1👍1
Как найти самый частый элемент
Этот короткий скрипт вернёт элемент, чаще всего встречающийся в списке.
Используются продвинутые параметры встроенной функции max():
• первым аргументом она получает множество из элементов списка (помним, что в множестве все элементы уникальны);
• затем применяет к каждому из них функцию count, подсчитывающую, сколько раз элемент встречается в списке;
• после этого возвращает элемент множества, который имеет больше всего «попаданий».
В качестве аргумента можно использовать списки, кортежи и строки.
Разъяснивший Python
Этот короткий скрипт вернёт элемент, чаще всего встречающийся в списке.
Используются продвинутые параметры встроенной функции max():
• первым аргументом она получает множество из элементов списка (помним, что в множестве все элементы уникальны);
• затем применяет к каждому из них функцию count, подсчитывающую, сколько раз элемент встречается в списке;
• после этого возвращает элемент множества, который имеет больше всего «попаданий».
В качестве аргумента можно использовать списки, кортежи и строки.
Разъяснивший Python
contextlib.ExitStack
Разъяснивший Python
contextlib.ExitStack позволяет управлять несколькими контекстными менеджерами динамически.Разъяснивший Python
«Вместо философии учил java, вместо доты — питон. Через 3 месяца нашёл работу с зп 90к»
Думаете, повезло?
Уверен, что так сможет каждый — потому что эти языки востребованы (70% программ и сервисов работают на них) и просты в усвоении (за 3 месяца можно выйти на достойный уровень без напряга).
А вот и каналы, где нашёл всю инфу. Её грамотно собрали, даже сложные темы изучаются легко:
Java (теория)
Java (практика)
Python
Уже через месяц сможете писать простеньких ботов для телеги и продавать по 5-7к, кайф же🥰
Думаете, повезло?
Уверен, что так сможет каждый — потому что эти языки востребованы (70% программ и сервисов работают на них) и просты в усвоении (за 3 месяца можно выйти на достойный уровень без напряга).
А вот и каналы, где нашёл всю инфу. Её грамотно собрали, даже сложные темы изучаются легко:
Java (теория)
Java (практика)
Python
Уже через месяц сможете писать простеньких ботов для телеги и продавать по 5-7к, кайф же
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
pathlib.Path.read_text()
Разъяснивший Python
pathlib.Path.read_text() — удобный способ прочитать содержимое текстового файла в строку. Этот метод автоматически открывает файл, читает его содержимое и закрывает его после чтения.Разъяснивший Python
Проверка на дубликаты
Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств 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