Python академия
7.73K subscribers
2.31K photos
5 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Выход пользователя из профиля

Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.

В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.

Подписывайтесь на канал 👉@pythonofff
👍10
Разделители для целых чисел

Трудно визуально различить целые числа подобные 10000000 и 100000000. Использовать запятые, как в английском языке, не получится.

Но Python позволяет использовать нижнее подчеркивание как разделитель для улучшения читабельности.

Например, 1_000_000 будет интерпретироваться как целое число 1000000.

Подписывайтесь на канал 👉@pythonofff
🤯5🔥4
kwargs в Python?

Обе звездочки () являются важным элементом, так как kwargs представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком. Форма kwargs с двумя звездочками используется в качестве параметра для отправки в функции списка аргументов переменной длины без ключевого слова.

Подписывайтесь на канал 👉@pythonofff
🔥3
Заглушка в коде

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

Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.

Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.

Подписывайтесь на канал 👉@pythonofff
👍6
VK поддержит NEF

В отдельном плейлисте официального сообщества NERC ICPC покажут трансляцию евразийского финала чемпионата по программированию ICPC в прямом эфире.

В финальных состязаниях NEF (Northern Eurasia Finals), которые начнутся сегодня в 17:00, встретятся 300 лучших команд. 160 из них примет Санкт-Петербург. Все желающие смогут насладиться состязанием благодаря пятичасовой онлайн-трансляции в официальном сообществе чемпионата. Зрители смогут в режиме реального времени наблюдать за тем, как команды выполняют задания, и попробовать попробовать решить их одновременно с финалистами, а также услышать разбор решений от профессионального жюри.
👍3
newspaper3k - с этим вы еще не встречались

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

В нём даже имеется встроенная NLP-функциональность.

В этом случае, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга так же в следующем проекте, лучше сэкономьте своё время и силы и загрузите newspaper

Подписывайтесь на канал 👉@pythonofff
🔥5🤯1😱1
Data Science | Machinelearning - самый большой русскоязычный канал с полезными материалами на такие темы как, Machine Learning, Data Science, Алгоритмы, Python. Так же часто публикуются крутые 🔥 вакансии.

👉 Вам сюда: @devsp

А любителям читать статьи в оригинале вот сюда:
👉 @ds_international

Добро пожаловать!
Временные файлы

В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями.

Функция TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект.

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

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

Подписывайтесь на канал 👉@pythonofff
👍5🔥3
Давно хотели просмотреть содержимое внешнего файла?

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

Подписывайтесь на канал 👉@pythonofff
👍4
Скачиваем видео с YouTube

Пакет pytube предоставляет всю небходимую функциональность для скачивания видео с YouTube, а также для сбора всей информации о нем.

Для работы нам необходимо создать объект класса YouTube. Помимо ссылки на видео в конструктор можно передать в качестве параметров функции для обработки прогресса загрузки и завершения.

Большинство видео на ютубе не имеют аудиодорожки на потоках с высоким разрешением, свыше 720p — это связано с технологией передачи DASH, которую использует ютьюб. Решение данной проблемы покажем в следующем посте.

На картинке мы показали как отфильтровать потоки с прогрессивной передачей и выбрать из полученного списка с максимальным доступным разрешением до 720p.

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

Подписывайтесь на канал 👉@pythonofff
👍7
Выполнение внешнего кода

Любой внешний код Python из блокнота Jupyter можно запускать с помощью команды %run.

Подписывайтесь на канал 👉@pythonofff
👍5
Объединяем видео и аудио потоки

Из-за технологии потоковой передачи DASH (Dynamic Adaptive Streaming over HTTP), используемой youtube, мы не можем получить сразу видео в нужном качестве со звуковой дорожкой из-за ее отсутствия в потоке.

В качестве решения мы можем по отдельности забрать аудио и видео и объединить с помощью утилиты ffmpeg. Для этого выбираем нужные потоки video и audio, после чего передаем url'ы в команду для инициирования создания процесса для скачивания и объединения потоков с помощью ffmpeg.

Подписывайтесь на канал 👉@pythonofff
👍7
Генераторы могут помочь при создании итераторов

Если создание собственного класса-итератора — редкость, то создание собственного итерабельного класса — не такая уж редкость. Итерабельный класс требует наличия метода iter, который возвращает итератор. Поскольку генераторы — это простой способ создания итератора, мы можем использовать функцию-генератор или выражение-генератор для создания наших методов iter.

Подписывайтесь на канал 👉@pythonofff
Задаем ширину текста

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

Как видите в примере на картинке, слова переносятся на новые строки и ничего не обрывается на полуслове.

Подписывайтесь на канал 👉@pythonofff
👍6
Работа с логическими операторами

При работе с логическими значениями Python предоставляет операторы для объединения значений с использованием стандартных понятий «и», «или» и «не». Эти операторы ожидаемо представлены словами and, or и not

Подписывайтесь на канал 👉@pythonofff
👍6
Операторы множеств

Множество — это коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды.

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

Примеры этих операторов можете посмотреть выше на картинке. Реализовано подобное поведение с помощью магических методов, про которые уже не раз говорили на канале.

Подписывайтесь на канал 👉@pythonofff
👍9
Выражения-генераторы — это синтаксис

Похожий на синтаксис представления списка (list comprehension), который позволяет нам создать объект-генератор.

Допустим, у нас есть представление-списка, который фильтрует пустые строки из файла и удаляет переход на новую строку в конце \n:

Подписывайтесь на канал 👉@pythonofff
👍6
Работаем с буфером обмена

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

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

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

Подписывайтесь на канал 👉@pythonofff
👍3
Выражения-генераторы — это синтаксис

Похожий на синтаксис представления списка (list comprehension), который позволяет нам создать объект-генератор.

Допустим, у нас есть представление-списка, который фильтрует пустые строки из файла и удаляет переход на новую строку в конце \n:

Подписывайтесь на канал 👉@pythonofff
👍2
Как работают статические методы

Статические методы создаются в классе при помощи декоратора @ staticmethod. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.

Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.

Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.

Подписывайтесь на канал 👉@pythonofff
👍8