Python School
82.5K subscribers
2.4K photos
7 videos
568 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Копирование!

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

Аргументы по умолчанию в Python задаются один раз при определении функции. Следовательно, каждый элемент используется при каждом вызове, то есть данные, содержащиеся в переменной, изменяемы при каждом обращении к ним в функции.
4 ситуации из жизни лямбда-функций в Python. Сортировка последовательности данных 

Первый допустимый вариант использования — сортировка последовательности данных при помощи встроенной функции sorted(). Если вы знакомы с методами списков объектов, то, скорее всего, вам известен похожий метод sort(), который может сортировать объекты в списке в нужном порядке. Функция sorted() используется во многих ситуациях. 
4 ситуации из жизни лямбда-функций в Python. Нахождение минимальных и максимальных значений 

Для нахождения минимального и максимального значений в наборе данных можно использовать две встроенные функции, а именно min() и max(). Принцип использования обоих методов идентичен. В большинстве случаев мы предоставляем итерируемый объект, состоящий из нескольких элементов. Задавая аргумент key, мы можем получить искомые минимальные и максимальные значения по тому же принципу, что и в случае с функцией sorted()
4 ситуации из жизни лямбда-функций в Python. Использование в качестве фабричной функции 

Вероятно, вам известно, что помимо встроенного типа словаря dict, в нашем распоряжении есть еще другой словарь под названием defaultdict. Этот класс является подклассом типа dict, который доступен в модуле collections. Конструктор defaultdict представляет собой defaultdict([default_factory[, ...]]). default_factory вызывается для создания значения при условии, что в словаре еще нет заданного ключа. 
4 ситуации из жизни лямбда-функций в Python. Использование лямбда с функциями высшего порядка (не самый лучший способ) 

Под функциями высшего порядка подразумеваются такие функции, как map() и filter(). Важно помнить, что всё в Python является объектом, включая функции. Функции, принимающие другие функции в качестве аргументов или возвращающие их в качестве результата, называются функциями высшего порядка. 
Логирование в Python с помощью Logzero. Установка

Logzero — это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и 3. Чтобы установить logzero с помощью pip, выполните следующий код.
Логирование в Python с помощью Logzero. Запись логов в файл

Многие пользователи Python предпочитают записывать логи в файл. При запуске системы их можно просматривать для проверки ошибок и обслуживания. Вы также можете установить файл для сохранения всех лог-записей в legzero.

Мы импортируем логгер и лог-файл из logezero. Метод logfile используется, чтобы настроить лог-файл для сохранения хранящихся в логе записей.
Логирование в Python с помощью Logzero. Базовый пример

Импортируем логгер из logzero в файл python и попробуем 4 примера уровней логирования. Как видим, каждый уровень имеет свой цвет, что значительно упрощает его определение.
Логирование в Python с помощью Logzero. Установка минимального уровня логирования

Установка уровня логирования предполагает выбор степени важности данного лог-сообщения. Изменить уровень логирования для обработчика файла можно с помощью аргумента loglevel в методе logfile.

В приведенном примере мы установили loglevel как warning. Следовательно все лог-записи ниже уровня warning не будут сохранены в лог-файл.
Логирование в Python с помощью Logzero. Ротация лог-файла

Не стоит сохранять все записи в один лог-файл, поскольку он становится массивным и увеличивает нагрузку на систему.

Вы можете использовать параметры maxBytes и backupCount для ротации файла с заранее заданным размером. Когда размер будет превышен, файл закроется, а новый файл для вывода откроется автоматически. Переключение происходит каждый раз, когда длина текущего лог-файла составляет почти maxBytes. Если maxBytes или backupCount равен нулю, переключение не происходит.
Логирование в Python с помощью Logzero. Экземпляры пользовательских логгеров

Вместо использования логгера по умолчанию, можно настроить экземпляры логгера с помощью logzero.setup_logger(..). Он возвращает полностью настроенный экземпляр логгера с различными параметрами, такими как имя, имя лог-файла, форматирование, maxBytes, backupCount и уровень логирования.
Логирование в Python с помощью Logzero. Установка пользовательского форматирования

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

В Python мы обычно помещаем ключевое слово pass в качестве заполнителя для ненаписанного кода. Но мы также можем использовать многоточие для этой цели.
Список всех переменных

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

Для того чтобы получить переменные определенного типа, мы должны указать этот тип после магической команды. Приведенный выше код отображает все переменные строкового типа в качестве выходных данных.
Выполнение html-скрипта

%% html позволяет нам писать html-код в ячейке. Теперь ячейка будет действовать как html-редактор с html-выводом ячейки.

Следующий код состоит из простой таблицы, созданной в формате html. Заметьте, что html-вывод отображает ожидаемую таблицу.
Отображение графиков Matplotlib

%matplotlib inline
 — это самая популярная магическая команда. Она позволяет отображать в блокнотах графики Matplotlib. Эта команда активирует интерактивную поддержку Matplotlib для блокнота Jupyter.
Подробная информация об объекте

%pinfo предоставляет подробную информацию об объекте, который передается вместе с ним. Она похожа на функцию object?.
Генератор

generator — тоже итератор, но его ключевое свойство — ленивые вычисления. Это классическая концепция в информатике, и её переняли многие языки программирования, такие как Haskell. Основная идея этой концепции звучит как вызов-по-необходимости. Отложенные вычисления могут приводить к снижению доступной процессу памяти. 

Генератор — это итератор, который работает в режиме обработки по необходимости. Мы не будем производить вычисления и сохранять значения сразу, а сделаем их “на лету”, когда будут выполняться итерации. 
Ограничение итераций

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