Правдивость различных объектов
В отличие от некоторых языков программирования, в Python объект считается false, только если он пуст. Это значит, что не нужно проверять длину строки, кортежа или словаря — достаточно проверить его как логическое выражение.
Легко предсказать, что 0 — тоже false, а остальные числа — true.
Например, следующие выражения эквивалентны. В данном случае my_object — строка, но здесь мог оказаться другой тип (с соответствующими изменениями условий блока if).
В отличие от некоторых языков программирования, в Python объект считается false, только если он пуст. Это значит, что не нужно проверять длину строки, кортежа или словаря — достаточно проверить его как логическое выражение.
Легко предсказать, что 0 — тоже false, а остальные числа — true.
Например, следующие выражения эквивалентны. В данном случае my_object — строка, но здесь мог оказаться другой тип (с соответствующими изменениями условий блока if).
Как зарабатывать 200 тысяч рублей из любой точки мира
Стать разработчиком на Python. Новички зарабатывают минимум 80 тысяч рублей, а опытные специалисты — до 200 тысяч! Почему так? Python — один из самых востребованных языков программирования, поэтому спрос на разработчиков растёт и не упадёт ещё долгие годы.
Самый простой способ им стать — пройти курс «Разработчик на Python» от Skyeng. Вы поднимете свой уровень с нуля до востребованного специалиста всего за 10 месяцев. Проходить курс можно удалённо и в любое время.
Что вы получите от этого курса:
1. Все знания об этом языке и сможете решать большинство задач разработчика.
2. Наставника, с которым вы будете разбирать реальные кейсы и решать задачи.
3. Методичку по трудоустройству от опытных HR-специалистов, которые сами подберут вам вакансии после обучения и помогут с резюме.
4. Готовое портфолио из 4 проектов, один из которых — Skyeng. Это поможет вам устроиться на работу.
Введите промокод
Стать разработчиком на Python. Новички зарабатывают минимум 80 тысяч рублей, а опытные специалисты — до 200 тысяч! Почему так? Python — один из самых востребованных языков программирования, поэтому спрос на разработчиков растёт и не упадёт ещё долгие годы.
Самый простой способ им стать — пройти курс «Разработчик на Python» от Skyeng. Вы поднимете свой уровень с нуля до востребованного специалиста всего за 10 месяцев. Проходить курс можно удалённо и в любое время.
Что вы получите от этого курса:
1. Все знания об этом языке и сможете решать большинство задач разработчика.
2. Наставника, с которым вы будете разбирать реальные кейсы и решать задачи.
3. Методичку по трудоустройству от опытных HR-специалистов, которые сами подберут вам вакансии после обучения и помогут с резюме.
4. Готовое портфолио из 4 проектов, один из которых — Skyeng. Это поможет вам устроиться на работу.
Введите промокод
УЧИСЬ
и получите скидку на курс 10% — https://go.skyeng.ru/pitonistsky.pro
Курсы Python онлайн — обучение Питону
✅Освойте современную профессию Python-разработчика с нуля и станьте востребованным специалистом с помощью онлайн-курса программирования от Skypro. Начните обучение сегодня и получите гарантию трудоустройства.
Highload — это новое издание с полезными техническими решениями и интересными историями из жизни тех, кто пишет код. Жмите на кнопку чтобы узнать правильный ответ на вопрос и подписывайтесь на Highload.
manim: поддерживаемая сообществом среда Python для создания математических анимаций.
https://proglib.io/w/be643c77
https://proglib.io/w/be643c77
GitHub
GitHub - ManimCommunity/manim: A community-maintained Python framework for creating mathematical animations.
A community-maintained Python framework for creating mathematical animations. - GitHub - ManimCommunity/manim: A community-maintained Python framework for creating mathematical animations.
Фильтры NEAREST, BILINEAR и BICUBIC в Pillow
Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.
• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.
Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.
Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.
• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.
Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.
Проверка прав доступа через декораторы
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Проверка данных при помощи декораторов
Еще один полезный метод, который может быть реализован с помощью декораторов, заключается в проверке данных до запуска декорированной функции. Очень распространенный этому пример в веб-приложении — это аутентификация пользователя. Если задача проверки или аутентификации завершается неудачно, то декорированная функция не вызывается, и вместо нее появляется ошибка.
В данном примере, декоратор only admins ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой.
Если нет заголовка токена, или если он есть, но не совпадает, то функция abort() из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.
Обратите внимание, как в примере функции представления admin_route() используются декораторы app.route и onlyadmins. Это называется цепью декораторов.
Еще один полезный метод, который может быть реализован с помощью декораторов, заключается в проверке данных до запуска декорированной функции. Очень распространенный этому пример в веб-приложении — это аутентификация пользователя. Если задача проверки или аутентификации завершается неудачно, то декорированная функция не вызывается, и вместо нее появляется ошибка.
В данном примере, декоратор only admins ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой.
Если нет заголовка токена, или если он есть, но не совпадает, то функция abort() из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.
Обратите внимание, как в примере функции представления admin_route() используются декораторы app.route и onlyadmins. Это называется цепью декораторов.
Хранение хеша и соли
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Объединение словарей
Допустим, у вас есть словарь со значениями по умолчанию, и вы хотите обновить его параметры. До Python 3.9 лучшим вариантом было скопировать словарь по умолчанию, а затем использовать метод .update().
Обратите внимание, что порядок имеет значение. В данном случае значение where из params переопределяет значение по умолчанию, как и должно быть.
Допустим, у вас есть словарь со значениями по умолчанию, и вы хотите обновить его параметры. До Python 3.9 лучшим вариантом было скопировать словарь по умолчанию, а затем использовать метод .update().
Обратите внимание, что порядок имеет значение. В данном случае значение where из params переопределяет значение по умолчанию, как и должно быть.
Регулярные выражения в Python
re. search()
Этот метод возвращает совпадающую часть строки и останавливается сразу же, как находит первое совпадение. Таким образом, его можно использовать для проверки выражения, а не для извлечения данных.
Синтаксис: re. search(шаблон, строка)
Возвращаемое значение может быть либо подстрокой, соответствующей шаблону, либо None, если такой подстроки не окажется.
re. search()
Этот метод возвращает совпадающую часть строки и останавливается сразу же, как находит первое совпадение. Таким образом, его можно использовать для проверки выражения, а не для извлечения данных.
Синтаксис: re. search(шаблон, строка)
Возвращаемое значение может быть либо подстрокой, соответствующей шаблону, либо None, если такой подстроки не окажется.
Задачи на алгоритмы пугают многих разработчиков своей сложностью. Григорий Шовкопляс, преподаватель из ИТМО, считает, что все не так уж страшно. Специально для канала Технострим он пошагово показал, как решать на Python задачу динамического программирования о наибольшей общей подпоследовательности так, чтобы написать код с первого раза. Смотрите тут: https://youtu.be/GOF4VUi4nGU
Кстати, Григорий преподает не только в ИТМО, но и в Академии больших данных MADE. Как раз сейчас последние дни приема заявок на бесплатное обучение в этом году https://vk.cc/c4rp1I
Кстати, Григорий преподает не только в ИТМО, но и в Академии больших данных MADE. Как раз сейчас последние дни приема заявок на бесплатное обучение в этом году https://vk.cc/c4rp1I
YouTube
Динамическое программирование — это просто | Академия данных MADE | #1
В этом выпуске мы познакомимся с Григорием Шовкоплясом, преподавателем дисциплины «Алгоритмы и структуры данных» в Академии больших данных MADE.
И рассмотрим способ, как решить задачу динамического программирования о наибольшей общей подпоследовательности…
И рассмотрим способ, как решить задачу динамического программирования о наибольшей общей подпоследовательности…
💐 Как я провел комплексную автоматизацию тепличного хозяйства: предметная область для IT-менеджеров
Мой опыт внедрения IoT в отечественном аграрном секторе. Роутеры, контроллеры, рассада и теплицы с вайфаем в чистом поле на юге России. Много красивых фоток.
https://proglib.io/sh/G0RYlcSjPo
Мой опыт внедрения IoT в отечественном аграрном секторе. Роутеры, контроллеры, рассада и теплицы с вайфаем в чистом поле на юге России. Много красивых фоток.
https://proglib.io/sh/G0RYlcSjPo