Senior Python Developer
Відкрити в Telegram
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Показати більше2025 рік у цифрах

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