Python академия
7.72K subscribers
2.35K photos
5 videos
269 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
IP-адрес

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

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

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

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

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

В генератор списка также можно добавить if-условие, которое может помочь нам отфильтровать данные. Например, в приведенном ниже коде мы сохраняем в список c все значения lst, большие 4

Подписывайтесь на канал 👉@pythonofff
👍2
Отлавливаем ошибки с помощью assert

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

Если выполнить инструкцию assert с логическим выражением, результат которого равен True, ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.

Однако не нужно пытаться обработать исключение AssertionError блоком try-except. В таком случае assert теряет свой смысл.

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

Подписывайтесь на канал 👉@pythonofff
👍2
Enum перечисления

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

Подписывайтесь на канал 👉@pythonofff
Атрибуты функций

Сейчас будет шок для новичков, но функции — это обычные объекты, у которых просто реализован метод __call__. Именно он и позволяет выполнять синтаксис с вызовом через круглые скобки.

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

Как вариант, в примере я реализовал счетчик вызова функции, но без использования глобальных переменных — всё с помощью атрибута в объекте функции.

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

Подписывайтесь на канал 👉@pythonofff
👍2
String join() с Set

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

Подписывайтесь на канал 👉@pythonofff
👍1
Выход пользователя из профиля

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

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

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

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

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

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

Подписывайтесь на канал 👉@pythonofff
👍1
Исключение с join()

Метод join() полезен при создании строкового представления из итерируемых элементов. Этот метод возвращает новую строку, а исходная строка и итерация остаются неизменными. Используя этот метод, мы можем создать строку CSV, а также строку, разделенную табуляцией.

Подписывайтесь на канал 👉@pythonofff
Please open Telegram to view this post
VIEW IN TELEGRAM
kwargs в Python?

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

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

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

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

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

Подписывайтесь на канал 👉@pythonofff
Please open Telegram to view this post
VIEW IN TELEGRAM