Just Python
11.2K subscribers
3.67K photos
11 videos
3.67K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

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

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Антипаттерн недели: Использование изменяемых объектов как ключей в словаре

В Python ключи в dict должны быть неизменяемыми (immutable). Если использовать изменяемые объекты (списки, множества), это приведёт к TypeError, так как такие объекты нехешируемы.

Используйте кортежи или строки в качестве ключей.

#theory // Just Python
sys.unraisablehook

sys.unraisablehook позволяет перехватывать исключения, которые не могут быть обработаны обычным try-except, например, ошибки в деструкторах (__del__). Это полезно для отладки и логирования неожиданных ошибок.

Документация

#theory // Just Python
faulthandler.dump_traceback()

faulthandler.dump_traceback() позволяет принудительно вывести текущий стек вызовов без аварийного завершения программы. Это полезно для отладки зависших процессов или анализа выполнения кода.

Документация

#theory // Just Python
sys.getallocatedblocks()

sys.getallocatedblocks() возвращает количество блоков памяти, выделенных интерпретатором Python. Это полезно для отладки утечек памяти и анализа работы сборщика мусора.

Документация

#theory // Just Python
Использование Python для преобразования рукописного текста в печатный

Этот лайфхак позволяет вам использовать Python для распознавания и преобразования рукописного текста в печатный. Это полезно для оцифровки заметок или работы с рукописными документами.

Как это работает:
1. Загрузка изображения: Скрипт загружает изображение с рукописным текстом.
2. Обработка изображения: Преобразует изображение в оттенки серого и улучшает контраст для лучшего распознавания.
3. Распознавание текста: Использует Tesseract OCR для извлечения текста из изображения.

#theory // Just Python
Автоматическое создание персонализированных поздравлений с помощью Python

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

Как это работает:
1. Шаблон поздравления: В коде создается текстовый шаблон с переменными (например, имя, событие, персонализированное сообщение).
2. Использование Jinja2: Библиотека jinja2 используется для подставления данных в шаблон.
3. Персонализация: При вызове функции вы передаете имя, событие и персонализированное сообщение для создания уникального поздравления.

#theory // Just Python
Автоматическое создание мемов с помощью Python

Этот лайфхак позволяет вам быстро создавать мемы, используя свои собственные изображения и текст, с помощью Python. Можете добавить текст к картинкам, стилизовать его и сохранять готовые мемы.

Как это работает:
1. Загрузка изображения: Скрипт загружает изображение с указанного URL.
2. Добавление текста: Вы добавляете верхний и нижний текст, который будет отображаться на мемах.
3. Рисование текста: Используется шрифт и метод рисования текста на изображении.
4. Сохранение: Готовое изображение сохраняется в файл.

#theory // Just Python
Управление смартфоном с помощью Python и жестов

Этот лайфхак позволяет вам управлять своим смартфоном с помощью жестов рук, распознаваемых через веб-камеру, используя Python. Это дает возможность выполнять действия на телефоне, такие как переключение музыки, регулировка громкости и прокрутка страниц, просто движениями рук.

Как это работает:
1. Распознавание жестов: Используется библиотека MediaPipe для обнаружения рук и распознавания их положения.
2. Взаимодействие с компьютером: Жесты преобразуются в команды для управления компьютером или смартфоном через pyautogui.
3. Пример с прокруткой: Жесты руки используются для управления прокруткой на экране.

#theory // Just Python
types.GenericAlias

types.GenericAlias позволяет программно создавать типизированные аннотации, как если бы они были объявлены с list[int], dict[str, float] и другими параметризованными типами.

#theory // Just Python
os.getrandom()

os.getrandom() получает криптографически безопасные случайные байты прямо из генератора операционной системы. Это полезно для генерации уникальных токенов и защиты данных.

#theory // Just Python
Превращение любого сайта в голосового ассистента с Python

Этот лайфхак позволяет вам взять любую статью или информацию с веб-сайта и превратить её в аудио-ответы, которые можно использовать в своем голосовом ассистенте.

Как это работает:
1. Загрузка текста с сайта: Скрипт использует requests и BeautifulSoup для получения текста из HTML-элементов (например, <p>).
2. Преобразование текста в речь: Использует gTTS (Google Text-to-Speech) для преобразования текста в аудио.
3. Воспроизведение аудио: Аудио-файл воспроизводится с помощью playsound.

#theory // Just Python
Управление YouTube на компьютере с помощью Python и голосовых команд

Этот лайфхак позволяет управлять воспроизведением видео на YouTube через голосовые команды, используя Python. Например, вы можете сказать "Поставь на паузу", "Следующее видео" или "Повтори видео".

Как это работает:
1. Распознавание речи: С помощью библиотеки SpeechRecognition записывается голос пользователя и преобразуется в текст.
2. Управление YouTube: Логика команд анализирует текст и выполняет действия через pywhatkit, например, поиск и воспроизведение видео.
3. Голосовая обратная связь: Библиотека pyttsx3 озвучивает ответы программы, делая взаимодействие более живым.

#theory // Just Python
Словари: Изменение, добавление, удаление элементов

Хочешь добавить новый элемент или изменить существующий? Просто присвой значение по ключу.

Для удаления элементов есть три варианта. Ты можешь удалить с помощью del, либо же удалить и получить значение с помощью pop(). Также метод clear() используется для очистки всего словаря.

#theory // Just Python
Антипаттерн недели: Изменение списка во время итерации

В Python изменение списка во время его обхода может привести к непредсказуемому поведению, пропуску элементов или IndexError.

Используйте создание нового списка или итерацию через copy().

#theory // Just Python
mmap.mmap()

mmap.mmap() позволяет работать с файлами как с массивами в памяти, что ускоряет чтение и запись больших файлов без их полного загрузки в ОЗУ.

#theory // Just Python
polars.DataFrame

polars.DataFrame — это высокопроизводительная альтернатива pandas, оптимизированная для работы с большими данными. Библиотека polars использует многопоточность и ленивые вычисления, ускоряя обработку таблиц в десятки раз.

Документация

#theory // Just Python
array.tobytes()

array.tobytes() позволяет быстро преобразовать массив чисел в байтовую строку, что полезно для работы с бинарными файлами, сокетами и сетевыми протоколами.

#theory // Just Python
gc.get_stats()

gc.get_stats() возвращает статистику работы сборщика мусора, включая количество собранных объектов на каждом этапе. Это полезно для анализа и оптимизации работы памяти.

#theory // Just Python
Декоратор для автоматического кэширования результатов функций

Кэширование — это техника, которая позволяет значительно улучшить производительность, сохраняя результаты вызовов функций и возвращая кэшированные результаты для одинаковых входных данных.

В Python можно создать декоратор, который автоматически кэширует результаты функций.

#theory // Just Python
Скриншот страницы сайта в одну строку кода

Если вам нужно быстро сделать скриншот веб-страницы и сохранить его в виде изображения, вы можете использовать Python и библиотеку selenium.

Как это работает:
1. selenium: Используется для автоматизации браузера.
2. webdriver-manager: Упрощает установку и управление драйверами для браузера.
3. .get(): Загружает указанную веб-страницу.
4. .save_screenshot(): Делает скриншот текущего окна браузера и сохраняет его в виде файла.

#theory // Just Python