ar
Feedback
Python академия

Python академия

الذهاب إلى القناة على Telegram

Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter

إظهار المزيد
7 288
المشتركون
لا توجد بيانات24 ساعات
-17 أيام
-3930 أيام
أرشيف المشاركات
Сохранение документации функции при декорировании У декораторов существует ряд проблем, одна из которых заключается в том, чт
Сохранение документации функции при декорировании У декораторов существует ряд проблем, одна из которых заключается в том, что, после оборачивания функции в декоратор, на выходе мы не можем получить информацию атрибутов __name__ и __doc__, нужные для документации функции. Вместо значений данных атрибутов исходной функции мы будем получать значения функции обертки. Для решения этой проблемы можно воспользоваться декоратором functools.wraps, применяя его к обертке нашего декоратора. В результате имя и сигнатура функции, передаваемой в декоратор, будут копироваться в обертку. Подписывайтесь на канал 👉@pythonofff

F-строки Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ р
F-строки Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python. Подписывайтесь на канал 👉@pythonofff

Слоты в классах По умолчанию в Python в классах используется словарь __dict__ для хранения атрибутов, который создается по ум
Слоты в классах По умолчанию в Python в классах используется словарь __dict__ для хранения атрибутов, который создается по умолчанию при создании экземпляра класса. Данная особенность позволяет динамически в рантайме добавлять атрибуты, но от сюда появляются соответствующие проблемы с производительностью. В случаях, когда мы сразу точно знаем все атрибуты, используемые в классе, мы можем воспользоваться атрибутом __slots__, который позволяет задать ограниченный список аргументов для класса. В этом случае словарь __dict__ не будет создаваться, что позволит сэкономить память и поднять производительность. Подписывайтесь на канал 👉@pythonofff

Перечисления enum Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удоб
Перечисления enum Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры. Подписывайтесь на канал 👉@pythonofff

Сортировка списков по ключу У списков есть метод sort(), который сортирует элементы. Также есть аргумент reverse, с помощью к
Сортировка списков по ключу У списков есть метод sort(), который сортирует элементы. Также есть аргумент reverse, с помощью которого можно отсортировать в обратном порядке при значении True. Но еще есть аргумент key, отвечающий за критерий сортировки. Он принимает функцию, которая применяется к каждому элементу. Возвращаемый результат и есть критерий, по которому произойдет сортировка. В коде на картинке у нас есть список из словарей, которые содержать описания машин. И в качестве мы отсортировали список по годам их выпуска, то есть по ключу 'year'. Подписывайтесь на канал 👉@pythonofff

emoji $ pip install emoji Подписывайтесь на канал 👉@pythonofff
emoji $ pip install emoji Подписывайтесь на канал 👉@pythonofff

Отлавливаем баги с assert При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не
Отлавливаем баги с assert При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не произойдет. Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError. Исключения AssertionError предназначены скорее для отладки. При написании программ на этапе разработки мы можем видеть, что делаем что-то не так (например, передали в метод некорректное значение). Также не нужно, к примеру, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try-except. Если в вашем коде будет очень много assert'ов, то это затронет и производительность программы. Подписывайтесь на канал 👉@pythonofff

Копирование содержимого во внешний файл В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в с
Копирование содержимого во внешний файл В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter. Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом. Подписывайтесь на канал 👉@pythonofff

Словари вместо switch-case В Python до сих пор нет switch-case конструкций, но иногда встречается одно хитрое решение — испол
Словари вместо switch-case В Python до сих пор нет switch-case конструкций, но иногда встречается одно хитрое решение — использовать словарь, где значениями будут функции. Для примера напишем словарь, который будет использован для математических операцией. Ключами будут операторы в виде строк, значениями — соответствующие функции. В этом примере я использовал lambda-функции для упрощения кода. Но вместо анонимных функций можно подставить и обычные, предварительно объявив их. Подписывайтесь на канал 👉@pythonofff

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

Что такое lambda-функции Анонимные функции — крайне полезный аспект языка, которым либо пренебрегают, либо чрезмерно пользуют
Что такое lambda-функции Анонимные функции — крайне полезный аспект языка, которым либо пренебрегают, либо чрезмерно пользуются. Начинающим они могут показаться сложными, но это совсем не так. Структура очень простая — lambda <arguments>: <expression> . Сначала пишете ключевое слово lambda, далее аргументы через запятую, двоеточие и какое-то выражение, результат которого автоматически вернется. Такие функции чаще всего используются, когда они больше нигде не понадобятся, то есть определять полноценную функцию нет смысла. Типичные примеры использования — map и filter. Подписывайтесь на канал 👉@pythonofff

Список всех переменных Эта команда выдает список всех глобальных переменных, используемых в вашем блокноте. Если мы используе
Список всех переменных Эта команда выдает список всех глобальных переменных, используемых в вашем блокноте. Если мы используем %who, она перечислит все 3 переменные, которые мы задали. Подписывайтесь на канал 👉@pythonofff

Параметры *args и **kwargs Все хоть раз видели такую запись, и сейчас мы узнаем, что это за символы. Сообщу сразу, что args и
Параметры *args и **kwargs Все хоть раз видели такую запись, и сейчас мы узнаем, что это за символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними. В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь. Конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы практически что угодно. Подписывайтесь на канал 👉@pythonofff

Уже 18 января, стартует подготовительный курс по Python🐍 Даём только мясную и прикладную информацию. Никакой воды и траты вр
Уже 18 января, стартует подготовительный курс по Python🐍 Даём только мясную и прикладную информацию. Никакой воды и траты времени. Вас ждет 69 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника. По окончании 14-дневного курса вы уже владеете базовым знанием языка! Запишитесь прямо сейчас!

Данные пользователя на главной странице | is_authenticated Обновим шаблон base.html таким образом, чтобы пользователи могли у
Данные пользователя на главной странице | is_authenticated Обновим шаблон base.html таким образом, чтобы пользователи могли увидеть сообщение вне зависимости от того, прошли они аутентификацию или нет. Для этого будем использовать атрибут is_authenticated. Теперь нужно просто разместить следующий код в нужном месте нашего шаблона. Обновим файл base.html, вставив новый код под закрывающимся тегом </header>. Подписывайтесь на канал 👉@pythonofff

Динамическая замена class Многие знают, что с помощью type можно получить тип объекта. Но не все так просто, по сути type слу
Динамическая замена class Многие знают, что с помощью type можно получить тип объекта. Но не все так просто, по сути type служит динамической заменой инструкции class и позволяет создавать новые объекты типа во время исполнения. Первый принимаемый аргумент является именем класса и становится атрибутом __name__; второй аргумент является кортежем с перечисленными базовыми типами и становится атрибутом __base__; словарь будет являться телом класса и станет атрибутом __dict__. Подписывайтесь на канал 👉@pythonofff

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

Вычисление размера объектов Для вычисления размера объекта мы можем использовать функцию getsizeof(object[, default]) из моду
Вычисление размера объектов Для вычисления размера объекта мы можем использовать функцию getsizeof(object[, default]) из модуля sys. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта. И хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов. Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError . Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора. Подписывайтесь на канал 👉@pythonofff

Используйте настраиваемый User-Agent Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправля
Используйте настраиваемый User-Agent Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое. Подписывайтесь на канал 👉@pythonofff