Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Отступы

«Должен быть один – и желательно только один – очевидный способ сделать что-либо», — Дзен Python.

Отступы чрезвычайно важны в Python. Уровень отступа строк кода в Python определяет, как группируются операторы.

Оператор print с отступом сообщает Python, что он должен выполняться только в том случае, если if возвращает True. Тот же отступ применяется для указания Python, какой код выполнять при вызове функции или какой код принадлежит данному классу.
Выводим положение курсора

Для вывода положения курсора получаем его координаты из функции get_position().

Далее собираем бесконечный цикл и выводим положение.

Это можно использовать для хранения движения курсора по экрану.
👍2
Обработка ошибок во время выполнения

Это самый полезный совет для программистов, работающих с Python. Вы можете устранить ошибку и избавить программу от сбоев во время выполнения.
Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip.
👍2
Работа с датами

Модуль python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом:

pip3 install python-dateutil

Выше приведен пример парсинга даты из логов.
Сокращение ссылок

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

Создать такую ссылку можно всего за три строчки кода, при помощи использования библиотеки PyShorteners. Вам нужно установить библиотеку в проект, выполнить её подключение, а также создать объект на её основе.

Установка библиотеки - pip install pyshorteners.
👍3❤1
Простая фишка, о которой знает небольшое количество разработчиков. Если у вас есть несколько переменных, можно присвоить им значения в одну строчку.
👍5
Копирование объектов

При стандартном присваивании обычно новый объект не создается, а лишь копируется ссылка на уже имеющийся. Если использовать copy.copy(), произойдет поверхностное копирование, т.е. создастся новый объект, но его ссылки на другие объекты будут те же.

Если же использовать copy.deepcopy(), то получатся "настоящие" копии объекта и всех его ссылок.
👍4
Находим подстроку

В Python легко проверить, является ли какая-то строка частью другой строки. Достаточно использовать оператор in.

Оператор пригодится при анализе больших текстов и их классификации.
Распаковка массива

Иногда возникает необходимость красиво и быстро вывести содержимое массива (например, в задачах на хакатонах). Для этого поможет оператор *.

Причем тут оператор * — не просто синтаксический сахар, так как без фиксированной длины списка было бы невозможно передать элементы списка как отдельные аргументы.
Проверка возможности вызова

Есть встроенная возможность быстро проверить, получится ли вызвать ту или иную переменную (либо значение) с помощью (). Для этого можно вызвать функцию callable.
Удаление специальных символов при помощи join() и filter()

Давайте воспользуемся методом соединения join(). Откройте тот же файл и инициализируйте строку с обычными и специальными символами. Первоначальная строка будет выводиться на экран первой.

Далее мы используем метод join() с функцией filter() для строковой переменной v1, чтобы отфильтровать символы. В данном случае для сбора только обычных символов из переменной v1 используется метод isalnum().
setattr()

С помощью данной функции мы можем менять атрибуты объекта во время выполнения программы. Первым аргументом она принимает объект, вторым — имя атрибута, а третьим — значение, которое необходимо установить.
Работаем с буфером обмена

Есть пакет pyperclip, который позволяет отправлять текст в буфер обмена вашего компьютера и получать его оттуда.

В этом пакете есть две основные функции — copy() и paste(), по названиям которых сразу понятны их предназначения — копировать и вставлять.

Получается, что можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
👍4❤1
Превращаем PDF в текст

Думаю, все периодически работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.

Модуль pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше.

Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
👍10
Как найти длину массива в Python

Чтобы узнать точное количество элементов, содержащихся в массиве, можно использовать встроенный метод len().

Он вернет вам целое число, равное общему количеству элементов в указанном вами массиве.

В этом примере массив содержал три элемента — 10, 20, 30. Поэтому длина массива равна 3.
👍1
Все циклы for в Python используют итераторы

В Python нет циклов for в стиле C. А циклы for в Python-стиле напоминают циклы for each в других языках. Это тип цикла, в котором используются итераторы. То есть каждый цикл for, который вы пишете на Python, должен использовать итератор.

Если вы внимательно посмотрите на пример на JavaScript, вы увидите, что мы сообщаем циклу, когда нужно завершить (i < ), а также — как инкременировать (i++).
👍6
Как закомментировать и раскомментировать строки кода

В будущем вы довольно часто будете сталкиваться с таким понятием, как «закомментированный код«. Это практика добавления символа # в начале вашего кода. Таким образом, можно на всякий случай убрать какой-то кусок кода, сделав его на данный момент нерабочим.
👍9
Узнаём версию Python

В пакете sys присутствует переменная version_info, которая хранит в себе версию Python, с помощью которого запущена программа.
👍2🔥1
Поиск классов Python

В Python все является объектом. Числа, строки, датафреймы и даже функции являются объектами. В частности, все, с чем вы имеете дело в Python, имеет класс — шаблон, с которым под капотом связан этот объект. Благодаря наличию этих унифицированных интерфейсов вы можете, например, использовать любой DataFrame одним и тем же образом.

Вы можете вызвать функцию type() для любого объекта Python, чтобы узнать его класс. Например, класс массива numpy на самом деле называется ndarray (для n-мерного массива).
👍2