Senior Python Developer
رفتن به کانال در Telegram
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
نمایش بیشتر2025 سال در اعداد

44 575
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-907 روز
-55930 روز
آرشیو پست ها
Photo unavailableShow in Telegram
Indico
Indico — это мощная библиотека Python для извлечения информации из неструктурированных текстов, изображений и PDF-файлов. Она позволяет вам выполнять задачи обработки естественного языка (NLP), компьютерного зрения (CV) и машинного обучения (ML) с помощью простых и понятных API.
https://pypi.org/project/indico/
#для_продвинутых
Photo unavailableShow in Telegram
Wagtail
Wagtail — это система управления контентом (CMS) с открытым исходным кодом, построенная на базе Django. Она фокусируется на пользовательском опыте и предоставляет разработчикам и дизайнерам точный контроль над созданием контента.
#для_продвинутых
Photo unavailableShow in Telegram
DiskCache
DiskCache — это высокопроизводительная библиотека кэширования, написанная на чистом Python и совместимая с Django. Она использует дисковое пространство и файлы для хранения данных, что делает ее быстрее, чем Redis и Memcached, особенно при работе с большими объемами данных.
https://pypi.org/project/diskcache/
#для_продвинутых
Photo unavailableShow in Telegram
#вопросы_с_собеседований
Напишите функцию, которая будет принимать список nums, содержащий числа в диапазоне от 1 до 100, и возвращать отсортированный список чисел, которые в списке nums встречались дважды.
Примеры:
duplicate_nums([1, 2, 3, 4, 3, 5, 6])
➞ [3]
duplicate_nums([81, 72, 43, 72, 81, 99, 99, 100, 12, 54])
➞ [72, 81, 99]
duplicate_nums([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
➞ None
Примечания:
— никакое число не будет встречаться в nums трижды и более раз,
— если никакое число в nums не встречалось дважды, функция должна вернуть None.
Photo unavailableShow in Telegram
Сокращение ссылок
Скорее всего, хоть раз, но вы сталкивались с сервисами по сокращению ссылок. Даже, если вы сами не создавали сокращенную ссылку, то хотя бы видели таковые в описаниях к различным роликам или на сайтах.
Создать такую ссылку можно всего за три строчки кода, при помощи использования библиотеки PyShorteners. Вам нужно установить библиотеку в проект, выполнить её подключение, а также создать объект на её основе.
Устfновка библиотеки - pip install pyshorteners.
Photo unavailableShow in Telegram
Рисуем шахматную доску
Результат программы вместе с исходным кодом будет в комментариях под записью.
Photo unavailableShow in Telegram
Библиотека mimesis
Часто для проверки работы алгоритмов нужно собрать достаточно данных, чтобы на них тестировать. Создание данных вручную занимает очень много времени, для избавления от этой рутины может помочь модуль mimesis, который умеет генерировать рандомные данные по нескольким критериям. Устанавливается он просто выполнив: pip install mimesis.
В примере выше мы генерируем адресные данные.
Photo unavailableShow in Telegram
Превращаем PDF в текст
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль
pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше.
Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.Photo unavailableShow in Telegram
Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Protocol. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере.
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным mypy.
#typing #аннотацииPhoto unavailableShow in Telegram
Узнаём курс доллара при помощи Python в 2 строчки
Пакет
forex-python позволяет получать данные о курсе валют и конвертировать одну валюту в другую. Программа на картинке позволяет нам узнать курс доллара относительно многих других валют мира. Вместо "USD" можно вставить любую другую валюту и получить актуальное соотношение.Photo unavailableShow in Telegram
Узнаем информацию о номере телефона
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.
Установка модуля -
pip install phonenumbers.
В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.
Больше информации вы можете найти здесь.Photo unavailableShow in Telegram
Метод setdefault()
Метод словаря setdefault() возвращает значение указанного ключа, если он присутствует. Если ключ отсутствует, метод setdefault() вставляет пару key:value со значением по умолчанию и возвращает значение по умолчанию.
Игра «Быки и коровы», которая играет сама в себя на языке программирования Python
Смотреть статью
Photo unavailableShow in Telegram
Обмен значениями при помощи кортежей
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Photo unavailableShow in Telegram
Модуль transliterate
Модуль transliterate представляет собой двунаправленный транслитератор текста для Python.
Транслитерирует (unicode) строки в соответствии с правилами, указанными в языковых пакетах, то есть заменяет все русские буквы на английские и наоборот по правилам транслитерации.
Выше представлена транслитерация текста с английского на русский, т.е. замена всех английских букв на русские.
Photo unavailableShow in Telegram
Функция calendar.isleap(year) и calendar.leapdays(y1, y2)
Функция calendar.isleap() возвращает True, если год year является високосным, в противном случае False.
Функция calendar.leapdays() возвращает количество високосных лет в диапазоне от y1 до y2 (исключая), где y1 и y2 - годы.
Photo unavailableShow in Telegram
Самый часто встречаемый элемент списка
Данная функция
most_frequent возвращает элементы, появляющиеся в списке чаще остальных.Photo unavailableShow in Telegram
Pampy
Библиотека
Pampy — это инструмент для сопоставления с образцом (pattern matching), который может упростить написание кода и сделать его более читаемым. Она может использоваться в различных ситуациях, таких как обработка разных типов данных, реализация рекурсивных функций и многое другое.
Здесь мы используем функцию match из библиотеки Pampy для сопоставления аргумента n с различными образцами. Образцы проверяются в том порядке, в котором они указаны:
Если n равно 1, функция возвращает 1.
Если n равно 2, функция возвращает 1.
Если n не соответствует ни одному из предыдущих образцов (обозначается символом _), функция вызывает себя рекурсивно с аргументами x-1 и x-2 и возвращает их сумму.
Теперь, если мы вызовем функцию fibonacci с аргументом 6, получим результат 8, поскольку шестое число Фибоначчи равно 8.Photo unavailableShow in Telegram
Cirq
Cirq — это библиотека, разработанная Google для квантовых вычислений. Она предназначена для создания, редактирования и вызова Noisy Intermediate Scale Quantum (NISQ) цепей. NISQ — это квантовые компьютеры, которые имеют от 50 до 100 кубитов и могут быть доступны в ближайшие годы.
Cirq позволяет пользователям определять квантовые цепи и симулировать их на классических компьютерах, а также предоставляет возможность запускать эти цепи на реальном квантовом оборудовании.
Результаты кода из примера представляют собой гистограмму измерений, где ключи - это возможные результаты измерения, а значения - это количество раз, когда был получен каждый результат.Photo unavailableShow in Telegram
Фреймворк Python-nubia
Python-nubia — это легковесный фреймворк для построения командных строк и интерактивных интерфейсов оболочки. Он был разработан в Facebook и используется во многих их продуктах для автоматизации, отладки и обслуживания.
Основные особенности Python-nubia:
- Поддержка как командной строки, так и интерактивного режима.
- Автоматическое создание документации для команд.
- Поддержка автоматического дополнения в интерактивном режиме.
- Возможность создания пользовательских команд и плагинов.
Python-nubia может быть полезен в различных областях, включая автоматизацию процессов, мониторинг, отладку и тестирование.
В этом примере мы создаем команду hello, которая принимает один аргумент name. Когда вы запустите это приложение и введете hello YourName в интерактивном режиме, оно вернет Hello, YourName!.