Как легко сжать изображение с помощью Python
Поскольку большая часть контента на сайтах это изображения, то неплохо бы сократить время их загрузки для пользователей. Чем меньше весят картинки, тем быстрее твой сайт загрузиться. Это порадует пользователя. В добавок это сохранит место на вашем сервере. На картинке приведен пример кода, который реализует сжатие изображения.
#практика
Поскольку большая часть контента на сайтах это изображения, то неплохо бы сократить время их загрузки для пользователей. Чем меньше весят картинки, тем быстрее твой сайт загрузиться. Это порадует пользователя. В добавок это сохранит место на вашем сервере. На картинке приведен пример кода, который реализует сжатие изображения.
#практика
👍46🤩10🔥1
Генераторы
Генератор – это функция, которая возвращает объект (итератор). Его ты можешь перебирать только по одному значению за раз. Это происходит по той причине, что генераторы не хранят все свои значения в памяти, а генерируют элементы “на лету”. Они не возвращают значение как функции, для этого используется ключевое слово yield.
#практика
Генератор – это функция, которая возвращает объект (итератор). Его ты можешь перебирать только по одному значению за раз. Это происходит по той причине, что генераторы не хранят все свои значения в памяти, а генерируют элементы “на лету”. Они не возвращают значение как функции, для этого используется ключевое слово yield.
#практика
🔥31👍14👏2
Enumerate
В Python цикл for обычно записывается как цикл над итерируемым объектом. Это означает, что тебе не нужна счетная переменная для доступа к элементам в итерируемом объекте. Однако иногда ты хочешь иметь переменную, которая изменяется при каждой итерации цикла. Вместо того, чтобы создавать и увеличивать переменную самостоятельно, ты можете использовать Python enumerate() для одновременного получения счетчика и значения из итерации.
#практика
В Python цикл for обычно записывается как цикл над итерируемым объектом. Это означает, что тебе не нужна счетная переменная для доступа к элементам в итерируемом объекте. Однако иногда ты хочешь иметь переменную, которая изменяется при каждой итерации цикла. Вместо того, чтобы создавать и увеличивать переменную самостоятельно, ты можете использовать Python enumerate() для одновременного получения счетчика и значения из итерации.
#практика
👍36🔥7😁1
Структура данных set
Набор — это неупорядоченная коллекция без повторяющихся элементов. Он используется для проверки членства и устранения повторяющихся записей. Объекты множества также поддерживают математические операции, такие как объединение, пересечение, разность и симметричная разность.
#практика
Набор — это неупорядоченная коллекция без повторяющихся элементов. Он используется для проверки членства и устранения повторяющихся записей. Объекты множества также поддерживают математические операции, такие как объединение, пересечение, разность и симметричная разность.
#практика
👍40🤔8🔥5🥰3🤣1
Функция внутри функции
Внутренние функции определяются внутри других функций. Они имеют прямой доступ к переменным и именам, определенным во внешней функций. Внутренние функции полезны для скрытия от внешнего доступа, создания вспомогательных функций. Также можно создать замыкания и декораторы.
#практика
Внутренние функции определяются внутри других функций. Они имеют прямой доступ к переменным и именам, определенным во внешней функций. Внутренние функции полезны для скрытия от внешнего доступа, создания вспомогательных функций. Также можно создать замыкания и декораторы.
#практика
👍100🤔22🤬9🔥7👏4
__slots__
По умолчанию Python использует dict для хранения атрибутов экземпляра объекта. Это действительно полезно, когда у тебя произвольное количество атрибутов. В небольших классах это уже проблема – dict тратит много оперативной памяти. Для экономии ресурсов используй slots. Память выделится только для фиксированного значения атрибутов. Это позволяет снизить использование оперативной памяти почти на 40-50 процентов.
#практика
По умолчанию Python использует dict для хранения атрибутов экземпляра объекта. Это действительно полезно, когда у тебя произвольное количество атрибутов. В небольших классах это уже проблема – dict тратит много оперативной памяти. Для экономии ресурсов используй slots. Память выделится только для фиксированного значения атрибутов. Это позволяет снизить использование оперативной памяти почти на 40-50 процентов.
#практика
👍143🤯18🔥13❤6🥰4👏2💩2