Как легко сжать изображение с помощью 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
Пользовательские исключения
Python имеет множество встроенных исключений. Они заставляют твою программу выводить ошибку, когда что-то в ней идет не так. Однако иногда тебе могут пригодиться уникальные исключения для конкретных целей. Это можно реализовать с помощью класса. Этот класс исключений должен быть производным из класса Exception, прямо или косвенно. Большинство встроенных исключений также являются производными от этого класса.
#практика
Python имеет множество встроенных исключений. Они заставляют твою программу выводить ошибку, когда что-то в ней идет не так. Однако иногда тебе могут пригодиться уникальные исключения для конкретных целей. Это можно реализовать с помощью класса. Этот класс исключений должен быть производным из класса Exception, прямо или косвенно. Большинство встроенных исключений также являются производными от этого класса.
#практика
👍2
Codecademy сделали канал в телеграм!
Codecademy — это крупнейшая в мире онлайн платформа для изучения программирования. Нас плохо знают русскоговорящие люди.
Именно для таких мы и сделали канал с переводом лучших материалов на русский язык!
Обязательно подписывайтесь, такой информации не будет ни на одном форуме: @ccademy
Codecademy — это крупнейшая в мире онлайн платформа для изучения программирования. Нас плохо знают русскоговорящие люди.
Именно для таких мы и сделали канал с переводом лучших материалов на русский язык!
Обязательно подписывайтесь, такой информации не будет ни на одном форуме: @ccademy
Lambda
Ключевое слово lambda позволяет сделать небольшие безымянные функции. Результат выражения всегда автоматически возвращается. Лучше всего использовать lambda для одноразовых функций. В данном примере реализована сортировка по второму элементу. Не рекомендую злоупотреблять lambda, так как это повлияет на читаемость кода.
#практика
Ключевое слово lambda позволяет сделать небольшие безымянные функции. Результат выражения всегда автоматически возвращается. Лучше всего использовать lambda для одноразовых функций. В данном примере реализована сортировка по второму элементу. Не рекомендую злоупотреблять lambda, так как это повлияет на читаемость кода.
#практика
👍2
JavaScript теперь в телеграм!
JavaScript — самый популярный язык в мире, он используется в 95% всех сайтов, которые вообще существуют. Теперь у JS есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсов. Стоит подписаться!
JavaScript — самый популярный язык в мире, он используется в 95% всех сайтов, которые вообще существуют. Теперь у JS есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсов. Стоит подписаться!
👍2
Функция zip
Функция zip позволяет легко объединить два списка. После вызова возвращается итератор. Чтобы увидеть содержимое, нужно сначала преобразовать его в список. Это полезно в циклах, так как позволяет избавиться от лишних вводов. Аналогично можно разбить один список на несколько. Для этого тебе нужно перед списком добавить звездочку.
#практика
Функция zip позволяет легко объединить два списка. После вызова возвращается итератор. Чтобы увидеть содержимое, нужно сначала преобразовать его в список. Это полезно в циклах, так как позволяет избавиться от лишних вводов. Аналогично можно разбить один список на несколько. Для этого тебе нужно перед списком добавить звездочку.
#практика
👍5
Разница между “is” и “==”
Распространенной проблемой является путаница с операторами сравнения “is” и “==”. Оператор “==” сравнивает значения, в то время как “is” проверяет ссылку на один и тот же объект в памяти. В коде приведены примеры для наглядности. Есть еще нюанс со строками и целыми числами. Короткие строки и маленькие целые числа будут возвращать True при сравнении с “is” из-за того, что Python пытается использовать меньше памяти для одинаковых объектов. Но более длинные строки и большие целые числа будут храниться отдельно.
#практика
Распространенной проблемой является путаница с операторами сравнения “is” и “==”. Оператор “==” сравнивает значения, в то время как “is” проверяет ссылку на один и тот же объект в памяти. В коде приведены примеры для наглядности. Есть еще нюанс со строками и целыми числами. Короткие строки и маленькие целые числа будут возвращать True при сравнении с “is” из-за того, что Python пытается использовать меньше памяти для одинаковых объектов. Но более длинные строки и большие целые числа будут храниться отдельно.
#практика
👍3
Half Loop
В отличие от других языков, в Python нет конструкций do-while или do-until. Это конструкции, которые позволяют выполнять код до определенного условия. Однако точно такой же результат можно получить с помощью комбинации while True и break.
#практика
В отличие от других языков, в Python нет конструкций do-while или do-until. Это конструкции, которые позволяют выполнять код до определенного условия. Однако точно такой же результат можно получить с помощью комбинации while True и break.
#практика
👍4