Разъяснивший Python
8.16K subscribers
2.45K photos
40 videos
30 files
2.3K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Как красиво вывести список

Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.

Метод join преобразовывает список в строку, рассматривая каждый элемент как строку. Разделителем является та строка, для которой был вызван join. Он достаточно умен, чтобы не вставлять разделитель после последнего элемента.

Дополнительный бонус: join работает линейное время. Никогда не создавайте строку складыванием элементов списка в цикле for: это не просто некрасиво, это занимает квадратичное время!

Разъяснивший Python
👎1
dataclasses.astuple()

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
Антипаттерн недели: Ловушка с оператором is при сравнении строк

В Python оператор is проверяет, ссылаются ли две переменные на один и тот же объект в памяти, а не равны ли их значения. Это может приводить к неожиданным ошибкам при сравнении строк.

Используйте == для сравнения значений строк, а не is.

Разъяснивший Python
Создание самоуничтожающегося Python-скрипта!

Этот код удаляет себя после выполнения, оставляя систему без следов!

Как это работает?
Скрипт выполняет свои задачи.
Определяет своё местоположение в файловой системе.
Удаляет себя после выполнения.

Где это можно использовать?
Создание временных скриптов для автоматизации.
Тестирование файлов без необходимости ручного удаления.
Написание скриптов-«призраков», которые исчезают после работы.

Разъяснивший Python
❤‍🔥1
sys._current_frames()

sys._current_frames() позволяет получить стеки вызовов всех активных потоков в программе. Это полезно для отладки многопоточных приложений.

Разъяснивший Python
inspect.getgeneratorstate()

inspect.getgeneratorstate() позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.

Разъяснивший Python
sys.setswitchinterval()

sys.setswitchinterval() позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.

Разъяснивший Python
inspect.currentframe()

inspect.currentframe() позволяет получить текущий стек вызовов и информацию о выполняемом коде. Это полезно для отладки, логирования и анализа исполнения программы.

Разъяснивший Python
Объединение списков без цикла

Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла?

Пусть и менее краткий, но более эффективный способ – применение модуля itertools

Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».

Разъяснивший Python
Запускаем код, спрятанный в изображении!

Этот лайфхак позволяет прятать Python-код в PNG-картинке и запускать его прямо из неё!

Как это работает?
Берём картинку и вписываем код в её пиксели, меняя последний бит цвета.
Сохраняем картинку, которая выглядит как обычное изображение.
Читаем картинку, достаём скрытый код и запускаем его!
Где это можно использовать?
Передача скрытых скриптов через изображения.
Прятать код в файлах для креативного программирования.
Эксперименты с техникой стеганографии.

Разъяснивший Python
types.new_class()

types.new_class() позволяет динамически создавать новые классы во время выполнения программы. Это полезно для метапрограммирования, создания классов с динамическими атрибутами и автоматической генерации API.

Разъяснивший Python
asyncio.gather()

Метод asyncio.gather() из модуля asyncio позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.

Разъяснивший Python
signal.set_wakeup_fd()

signal.set_wakeup_fd() позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.

Разъяснивший Python
Создаём "невидимый" Python-код!

Этот трюк позволяет прятать код в пустом файле, используя символы-заполнители, которые Python всё равно понимает!

Как это работает?
В начале кода вставлены невидимые символы Zero-Width Space (\u200B) и Zero-Width Non-Joiner (\u200C).
Python игнорирует эти символы, но они мешают текстовому редактору определить, что в файле что-то есть.
В итоге код выглядит пустым, но выполняется!

Где это можно использовать?
Шутки над коллегами — код как будто не существует, но выполняется.
Скрытие "пасхалок" в проектах.
Креативные соревнования по написанию странного кода.

Разъяснивший Python
🔥3
rich.print()

rich.print() — это удобный способ красиво выводить текст, таблицы и логи в терминал с поддержкой цветного форматирования. Библиотека rich делает консольные приложения более читаемыми и наглядными.

Разъяснивший Python
👍4
sys.call_tracing()

sys.call_tracing() позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace(). Это полезно для профилирования и отладки.

Разъяснивший Python
1
Анализ логов серверов

Данный код позволяет автоматически анализировать логи веб-серверов (например, Nginx, Apache). Ты сможешь выявлять подозрительные IP-адреса, DDoS-атаки, ошибки 500 и другие аномалии с помощью машинного обучения.

Ссылка на код

Разъяснивший Python
pathlib.Path.exists()

Метод pathlib.Path.exists() используется для проверки существования файла или директории. Это удобный способ работы с файловой системой в Python.

Разъяснивший Python
Запускаем Python-код… без Python!

Этот трюк позволяет выполнить Python-код, даже если интерпретатор Python не установлен в системе!

Как это работает?
Запрос отправляется на сервер с Python.
Сервер выполняет код и возвращает результат.
Ответ выводится в консоль браузера.

Где это можно использовать?
Когда на ПК нет Python, а код запустить нужно.
Быстрая проверка Python-кода прямо в браузере.
Создание веб-приложений с серверной логикой на Python.

Разъяснивший Python
🔥1