Senior Python Developer
46.6K subscribers
1.97K photos
3 videos
1 file
486 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Метод re.sub()

re.sub(pattern, repl, string)

Ищет шаблон в строке и заменяет его на указанную подстроку. Если шаблон не найден, строка остается неизменной.
Особая переменная __name__

Когда интерпретатор Python работает с программой, в начале он устанавливает некоторые специальные переменные. Одна из них — name.

Если скрипт запущен напрямую, то в переменную присваивается значение main, в случае импорта — название модуля.

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

Тестировщик — специалист, который отлавливает ошибки на всех этапах разработки проекта.

Смотреть статью
This media is not supported in your browser
VIEW IN TELEGRAM
Генерация 2D мира с помощью клеточного автомата на Python

Клеточным автоматом называют множество клеток, которые можно представить в виде матрицы с x‑строк и y‑столбцов.

Смотреть статью
#вопросы_с_собеседований
Что такое поверхностная копия?

Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
Абстракция множеств

Так же, как и в случае со списками и словарями, при работе с множествами можно воспользоваться так называемой абстракцией множеств (set comprehension). Делается это путём добавления обрабатываемого выражения в фигурные скобки и через возврат единственного мутабельного элемента на каждом проходе цикла: { <element> for ... in ... }.
Функция str-center()

Функция str-center() позиционирует по центру указанную строку, дополняя её справа и слева до указанной длины указанным символом.

Также можно указать символ, который будет использоваться для заполнения, по умолчанию — пробел. Изначальная строка не обрезается, даже если в ней меньше символов, чем указано в параметре желаемой длины.
Модуль gzip

Модуль gzip предоставляет простой интерфейс для сжатия и распаковки файлов, как это делают программы GNU gzip и gunzip.

Сжатие потока данных обеспечивается модулем zlib.

Модуль gzip предоставляет класс gzip.GzipFile(), а также удобные функции gzip.оpen(), gzip.compress() и gzip.decompress(). Класс gzip.GzipFile() читает и записывает файлы формата gzip, автоматически сжимая или распаковывая данные, чтобы они выглядели как обычный файловый объект.

Обратите внимание, что дополнительные форматы файлов, которые могут быть распакованы программами gzip и gunzip, например созданные с помощью команды bash compress и pack, этим модулем не поддерживаются.
#вопросы_с_собеседований
Как быстро проверить, что в строке присутствуют только буквы и цифры?

Ответ на картинке. Можно использовать встроенную функцию isalnum, которая как раз предназначена для решения задачи.
Напишите программу на Python для локального сохранения изображения из Интернета, URL-адрес которого известен

Ответ на картинке.
Упрощение конструкций с if

Если вам нужно проверить несколько значений, сделайте так, как показано выше на картинке.
Pillow

Pillow является ответвлением Python Imaging Library. Эта библиотека подойдет для создания миниатюр, преобразования изображений в различные форматы, наложения фильтров, вращения и отображения изображений и т.д. К тому же это идеальный вариант для пакетной обработки большого количества картинок.

Для большей наглядности приведу пример того, как вы можете отобразить изображение из Python-кода. Проект устанавливается, как всегда, с помощью pip, документацию можете найти по ссылке.
Python-dateutil

Пакет предлагает мощные расширения стандартного модуля datetime. С этой библиотекой можно сделать много полезного, но мы ограничимся одним примером, который используется чаще всего, — нечеткий разбор (парсинг) дат. Документацию пакета можете найти по ссылке.
Горизонтальное склеивание изображений

Что для этого нужно сделать:
• Открыть изображения
• Изменить размер изображения с помощью функции Resize() . Оба изображения с измененным размером должны иметь одинаковую ширину и высоту, чтобы их соотношение сторон не изменилось и их можно было вставить в новое фоновое изображение.
• Для создания нового изображения у него есть функция new() , которая имеет 3 параметра («режим», (размер), цвет).
• Вставить изображение в новое изображение, используя paste().

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

Для начала требуется установить библиотеку matplotlib — pip install matplotlib. Сама программа для создания примера простого графика представлена на картинке.

В функцию plot передаются два массива — координаты точек кривой. Первый массив — координаты по x, второй массив — y. Функция show выдает картинку с графиком.
Метод Counter.elements()

Возвращает итератор по элементам, в котором каждый элемент повторяется столько раз, во сколько установлено его значение.

Элементы возвращаются в порядке их появления. Если количество элементов меньше единицы, то метод Counter.elements() просто проигнорирует его.
Именование среза с функцией slice

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

Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Однако есть и более удачный способ написания качественного кода, как показано на картинке.
Заменяем часть строки

Со строками в Python работать очень удобно, так как встроенных методов для них довольно много. Одним из методов является str.replace(), который позволяет заменять части строк.

Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.

Также есть третий опциональный аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию все вхождения заменяются.