3.73K subscribers
478 photos
29 videos
35 files
343 links
Здесь есть всё, чтобы упростить вам изучение Python.
Download Telegram
Кэширование функций

На картинке — пример, где кэширование фактически спасает программу от зависания: декорация @lru_cache(maxsize=32), выполняющая кэширование, позволила сэкономить время выполнения программы. Кэширование помогает тогда, когда функция периодически вызывается с одинаковыми аргументами, промежуточно сохраняя результат, а не пересчитывая всё заново каждый раз.
Чтение JSON из файла

Чтение JSON из файла такое же простое, как и запись. С помощью библиотеки json мы можем спарсить JSON-строку прямо из файла.

json.load — очень важный метод, запомните его. С его помощью происходит чтение файла, парс JSON-данных. После этого все данные записываются в словарь и возвращаются вам.

Как и у json.dump, у json.load есть дополнительный метод. Он позволяет работать со строками напрямую, ведь чаще всего у вас не будет файлоподобного объекта, содержащего JSON. Как вы уже догадались, называется он json.loads. Допустим, вы вызываете конечную точку REST с помощью GET, который возвращает строку. Ее мы и можем напрямую передать в json.loads.
Ключевое слово global

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

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

Если нам необходимо выполнять слайсинг несколько раз в одной программе, было бы эффективно заключить нужные параметры в переменную. Таким образом мы сможем уменьшить количество «хардкода» («принудительное» присвоение переменной какого- либо значения, вместо того чтобы присваивать его динамически, в зависимости от ситуации).
Генераторы

Функции-генераторы выглядят как и обычные, но вместо return содержат выражения с ключевым словом yield для последовательного генерирования значений.

Вызов подобной функции вернёт не значение, а объект генератора. Далее из этого объекта можно получать значения, например, с помощью функции next или циклом for.

Если генератору больше нечего возвращать, то будет вызвано исключение StopIteration. В целом, генератор — это особый, более изящный случай итератора.
Virtual environments: виртуальные среды

Одна из самых полезных возможностей Python.

Часто бывает так, что два проекта используют одну и ту же зависимость, но в разных версиях. Что вы устанавливаете в этом случае?

Нет нужды делать сложный выбор, ведь Python поддерживает виртуальные среды.
Корутины

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

Обратите внимание на то, как было использовано ключевое слово yield. При таком написании создаётся не генератор, а корутина, что позволяет не просто генерировать значения, но и принимать их.

Функция работает так: при отправке значения через метод send локальная переменная name принимает его, а далее значение подставляется в строку и выводится на экран.
Проверяем переменную на истинность

Создаём Python-файл со следующим кодом. Для проверки переменной DEBUG на истинность здесь используется функция get(). Программа выводит разные сообщения в зависимости от значения переменной.
Работа с ip адресами

Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.

Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).

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

Проверяет, есть ли в списке повторяющиеся значения, пользуясь тем, что set()содержит только уникальные элементы.
Узнаём курс доллара при помощи Python в 2 строчки

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

Чтобы вычислить кубический корень в Python, используйте простое математическое выражение x ** (1. / 3.), результатом которого является кубический корень из x в виде значения с плавающей точкой. Для проверки, корректно ли произведена операция извлечения корня, округлите полученный результат до ближайшего целого числа и возведите его в третью степень, после сравните, равен ли результат x.
Генерация капчи

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

Все максимально просто, за нас по сути все делает уже написанный в модуле код. Создаем объект изображения ImageCaptcha, на который будет нанесен текст. После чего вызываем метод write с заданным текстом и именем файла, в который будет записано изображение.
Как закомментировать и раскомментировать строки кода

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

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

Во-первых, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны – например, в циклах for.

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

В-третьих, руководство модуля gettext рекомендует псевдоним его функции gettext() для _(), чтобы минимизировать загромождение вашего кода.
Анаграммы

Интересное применение класса Counter — это поиск анаграмм. Анаграмма — это слово или фраза, сформированные перестановкой букв другого слова или фразы.

Если объекты Counter двух строк эквивалентны, значит, они являются анаграммами.
Создание дочернего процесса

Метод os.fork() создаёт дочерний процесс в том же месте кода, вызывая системную функцию fork(), и возвращает PID (Process Identifier), который равен PID дочернего процесса в родительском процессе и нулю в новом.

Кстати, получается интересный случай, в коде примера выполняется и блок if, и else. Если не знать про os.fork() и посмотреть вывод подобного кода, то возникнет много вопросов.
howdoi

Застряли на какой-то проблеме с кодом и не можете вспомнить нужное решение? Хотите зайти в StackOverflow, но не хотите выходить из терминала?

Тогда вам точно пригодится вот этот инструмент для командной строки.

Задайте ему любой вопрос, и он постарается выдать нужный ответ.
Делаем HTTP запросы

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

Устанавливается requests стандартным путем через пакетный менеджер pip. Запросы GET, POST, PUT и DELETE делаются интуитивно понятно. Атрибуты у объекта Response позволяют получить всю информацию об ответе от сервера.

Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
Редактор видео

Все еще в поиске крутого видео редактора? Зачем что-то искать, когда есть Python и замечательная библиотека MoviePy :)

За счет MoviePy вы можете перевернуть видео, можете его обрезать, можете изменить количество FPS и можете выполнить ещё много других действий.

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

Лёгкий способ делать ПК программы на Python с красивым интерфейсом и работающие одновременно на Windows, Mac и Linux.

Смотреть это видео на youtube:
https://youtu.be/Gon0MvppfF8