Python Scripts
822 subscribers
153 photos
3 links
Программы , обучалки, полезности на языке Python.

Посты каждый день.

По вопросам: @zemetsskiy
Download Telegram
Расчет времени выполнения программы

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

В этом посте есть решение, а таится оно стандартной библиотеке time.
Что выведет следующий код ?
Anonymous Quiz
44%
0 1
20%
1 0
6%
0 0
18%
Error
12%
Узнать ответ
Метод get() у словарей и его «дефолтный» результат

Сразу же рассмотрим пример с картинки.

Метод get() возвращает значение по ключу если такой ключ присутствует в словаре name_for_userid , иначе, метод возвращает дефолтное значение "Уважаемый".

Если же мы напишем name_for_userid.get(5454) без указания «дефолтного» значения, то функция вернет None. Довольно удобно и практично.
Какой элемент удаляет метод списка POP , если не указан аргумент ?
Anonymous Quiz
15%
Первый
60%
Последний
8%
Случайный
12%
Аргумент обязателен
5%
Узнать ответ
Как отобразить код функции в виде строки ?

Предположим, вы работаете над большим проектом. В какой-то момент времени потребовалось использовать определенную функцию. Искать ее по всем скриптам – дело долгое и муторное. Если используется IDE, то там можно просмотреть код функции достаточно просто (в пайчарме, например, при нажатом Ctrl достаточно нажать кнопку мыши по названию объекта). В питоне увидеть код функции очень просто: для этого используют модуль inspect.
Как создаются и для чего нужны статические методы?

Методы классов в Питоне делятся на 3 типа:

1) Методы экземпляров (наиболее часто используемые, в качестве первого аргумента всегда принимают self)

2) Классовые методы (здесь первым параметром передается cls. Привязаны к данному классу, а не к его экземплярам. Способны менять состояние класса, но не его экземпляров)

3) Статические методы (не требуют наличия особого первого аргумента. Фактически, не принадлежат никакому классу, а представляют собой независимую функцию, которую мы по причинам бизнес-логики решили включить в класс).

Для создания статического метода используют декоратор @staticmethod .
3 встроенные в Python функции

На сегодня в Python встроено около 70 функций. Опишем следующие три:

1) Функция max()
Возвращает максимальное значение итерируемого объекта (списка, словаря, кортежа) или переданных аргументов (если их несколько). Возможно использование дополнительных параметров: key (функция предварительной обработки значений объекта), default (значение по умолчанию, если передан пустой объект).

2) Функция len()
Определяет количество элементов в объекте (строке, списке, словаре, множестве и т.д.)

3) Функция id()
Позволяет узнать уникальный идентификатор любого объекта в рамках конкретной исполняемой среды. При новом запуске скрипта значения идентификаторов поменяются.
Виды параметров функций

Несмотря на кажущуюся простоту в понимании типов параметров функций при их трактовании у начинающих разработчиков часто возникают трудности.

Если коротко, то различают 4 вида параметров:

– позиционные
– строго позиционные ( Знак косой черты свидетельствует о том, что все параметры до нее обязаны быть строго позиционными )
– ключевые
– строго ключевые
( Чтобы передать в функцию строго ключевые аргументы, их нужно предварить инструкцией * )

Замечание: позиционные аргументы должны всегда предшествовать ключевым, иначе в работе кода возникнет ошибка
Способы импортирования функции из модуля

Вариантов импортирования функции из модуля или пакета в питоне представлено не мало. Опишем самые распространенные и понятные большинству. Более замудренные и редкие способы применяются теми, кто понимает, зачем ему это надо. На практике такое встречается редко и используется экспертами для специфичных задач.

Рассмотрим несколько способов на примере импортирования функции sqrt из модуля math .
Что выведет следующий код ?
Anonymous Quiz
22%
[1]
31%
[1, 1]
24%
[1, 1, 1]
9%
[1, 1, 1, 1]
12%
Error
Открываем текстовый файл без сторонних библиотек

Существует 2 основных варианта открытия текстового документа :

1) При помощи функции open() – дополнительно требуется закрыть файл после работы с ним, иначе он останется в памяти.

2) С использованием контекстного менеджера with – закрывать документ не требуется, это произойдет автоматически.

Приведем пример открытия условного файла article.txt, находящегося в текущей папке проекта. Важно помнить о том, что необходимо указать кодировку, чтобы вместо понятного текста вы не получили набор непонятных символов.
Использование функции print для записи файлов

Функция print() позволяет не только выводить информацию в терминал, но и записывать ее в файл. Для этого применяется ключевой аргумент file. Основное удобство ( по сравнению с функцией write() ) заключается в том, что перенос на новую строку осуществляется автоматически.
Библиотека Pillow

Библиотека Pillow позволяет обрабатывать изображения. Работает со всеми популярными форматами jpeg, png.

Пакет позволяет осуществлять следующие операции:

1. Получать полную информацию о файле (размер, гистограмму цветов, exif-данные, цветовой режим)
2. Изменять картинку (обрезать, менять размер)
3. Накладывать фильтры (размытие, усиление резкости, сглаживание краев)
4. Наносить текст (любого цвета в любое место)
5. Сохранять новые файлы в нужную директорию

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

Документация
Что выведет код ?
Anonymous Quiz
8%
5
10%
6
32%
7
24%
8
19%
Error
7%
Узнать ответ
Методы keys (), items (), values ()

Методы keys(), items(), values() еще называют объектами просмотра словаря. Они позволяют просматривать все элементы словаря и имеют некоторые особенности:

1. keys() – возвращает список ключей в исходном порядке, все элементы уникальны, ведут себя как множество: могут объединяться, пересекаться и тд, являются итерабельными и их нельзя менять напрямую и вызывать по индексу.

2. values() – контейнер со значениями словаря, в котором элементы могут повторяться (т.е. не ведет себя как множество). В остальном, свойства аналогичны методу keys().

3. items() – список элементов словаря в виде кортежей, где первым идет ключ, а вторым объектом – значение. Если значения словаря неизменямые, то контейнер items() будет обладать свойствами сета. Остальные особенности совпадают с keys()

На примере рассмотрим метод keys() .