Senior Python Developer
Ir al canal en Telegram
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Mostrar más2025 año en números

44 575
Suscriptores
Sin datos24 horas
-907 días
-55930 días
Archivo de publicaciones
Photo unavailableShow in Telegram
Функция scandir()
Функция
os.scandir() в Python используется для получения итератора объектов os.DirEntry, соответствующих записям в каталоге, заданном указанным путем. Записи возвращаются в произвольном порядке, а специальные записи '.' и '..' всегда будут в начале списка.
#для_продвинутыхPhoto unavailableShow in Telegram
Обрабатываем номера телефонов
Пакет phonenumbers основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.
Основным классом, который представляет номер, является PhoneNumber. Объект можно создать, вызвав метод parse() и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
Photo unavailableShow in Telegram
Проверка истинности объекта класса
Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магический" метод
__bool__(), который был добавлен на замену устаревшему __nonzero__() в python2.
Если данный метод определен в классе, то он будет вызываться при каждой проверке объекта на истинность а также с помощью функции bool(). Метод должен возвращать False или True.
Если __bool__() не определен, будет вызываться метод __len__(), если он определен, и, соответственно, объект будет считаться истинным, если результат __len__() не будет равен нулю. Если в классе не определены ни __len__(), ни __bool__(), все его экземпляры будут истинными.Photo unavailableShow in Telegram
Аргументы командой строки
При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной
argv во встроенном модуле sys.
Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.Photo unavailableShow in Telegram
Метод Counter.subtract()
Метод Counter.subtract() вычитает элементы текущего счетчика cnt и итерируемой последовательности или другого словаря или другого счетчика Counter(). Подобно методу словаря dict.update(), но вычитает количество (значения ключей), а не заменяет их.
Значения ключей как у счетчика так и у словаря могут быть нулевыми или отрицательными.
Photo unavailableShow in Telegram
Заменяем часть строки
Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является
str.replace(), который позволяет заменять части строк.
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.Photo unavailableShow in Telegram
Именование среза с функцией slice
Работа с множеством значений, которые заданы индексами, может быстро закончиться беспорядком как в плане поддержки, так и читабельности кода.
Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Однако есть и более удачный способ написания качественного кода, как показано на картинке.
Photo unavailableShow in Telegram
Метод Counter.elements()
Возвращает итератор по элементам, в котором каждый элемент повторяется столько раз, во сколько установлено его значение.
Элементы возвращаются в порядке их появления. Если количество элементов меньше единицы, то метод Counter.elements() просто проигнорирует его.
Базовый пример построения графика с помощью Python
Для начала требуется установить библиотеку matplotlib —
pip install matplotlib. Сама программа для создания примера простого графика представлена на картинке.
В функцию plot передаются два массива — координаты точек кривой. Первый массив — координаты по x, второй массив — y. Функция show выдает картинку с графиком.Photo unavailableShow in Telegram
Горизонтальное склеивание изображений
Что для этого нужно сделать:
• Открыть изображения
• Изменить размер изображения с помощью функции Resize() . Оба изображения с измененным размером должны иметь одинаковую ширину и высоту, чтобы их соотношение сторон не изменилось и их можно было вставить в новое фоновое изображение.
• Для создания нового изображения у него есть функция new() , которая имеет 3 параметра («режим», (размер), цвет).
• Вставить изображение в новое изображение, используя paste().
Ниже приведен результат работы кода.
Photo unavailableShow in Telegram
Python-dateutil
Пакет предлагает мощные расширения стандартного модуля datetime. С этой библиотекой можно сделать много полезного, но мы ограничимся одним примером, который используется чаще всего, — нечеткий разбор (парсинг) дат. Документацию пакета можете найти по ссылке.
Photo unavailableShow in Telegram
Pillow
Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования изображений в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. К тому же это идеальный вариант для пакетной обработки большого количества картинок.
Для большей наглядности приведу пример того, как вы можете отобразить изображение из Python-кода. Проект устанавливается, как всегда, с помощью pip, документацию можете найти по ссылке.
Photo unavailableShow in Telegram
Упрощение конструкций с if
Если вам нужно проверить несколько значений, сделайте так, как показано выше на картинке.
Photo unavailableShow in Telegram
Напишите программу на Python для локального сохранения изображения из Интернета, URL-адрес которого известен
Ответ на картинке.
Photo unavailableShow in Telegram
#вопросы_с_собеседований
Как быстро проверить, что в строке присутствуют только буквы и цифры?
Ответ на картинке. Можно использовать встроенную функцию isalnum, которая как раз предназначена для решения задачи.
Photo unavailableShow in Telegram
Модуль gzip
Модуль gzip предоставляет простой интерфейс для сжатия и распаковки файлов, как это делают программы GNU gzip и gunzip.
Сжатие потока данных обеспечивается модулем zlib.
Модуль gzip предоставляет класс gzip.GzipFile(), а также удобные функции gzip.оpen(), gzip.compress() и gzip.decompress(). Класс gzip.GzipFile() читает и записывает файлы формата gzip, автоматически сжимая или распаковывая данные, чтобы они выглядели как обычный файловый объект.
Обратите внимание, что дополнительные форматы файлов, которые могут быть распакованы программами gzip и gunzip, например созданные с помощью команды bash compress и pack, этим модулем не поддерживаются.
Photo unavailableShow in Telegram
Функция str-center()
Функция str-center() позиционирует по центру указанную строку, дополняя её справа и слева до указанной длины указанным символом.
Также можно указать символ, который будет использоваться для заполнения, по умолчанию — пробел. Изначальная строка не обрезается, даже если в ней меньше символов, чем указано в параметре желаемой длины.
Photo unavailableShow in Telegram
Абстракция множеств
Так же, как и в случае со списками и словарями, при работе с множествами можно воспользоваться так называемой абстракцией множеств (set comprehension). Делается это путём добавления обрабатываемого выражения в фигурные скобки и через возврат единственного мутабельного элемента на каждом проходе цикла: { <element> for ... in ... }.
Photo unavailableShow in Telegram
#вопросы_с_собеседований
Что такое поверхностная копия?
Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
