🐍🚀 Django с нуля. Часть 1: пишем многопользовательский блог для клуба любителей задач Python
Собираетесь изучать Django, но не знаете, с чего начать? Расскажем, как быстро создать функциональное приложение, которое продемонстрирует базовые возможности фреймворка.
https://proglib.io/p/django-s-nulya-chast-1-pishem-mnogopolzovatelskiy-blog-dlya-kluba-lyubiteley-zadach-python-2022-06-06
Собираетесь изучать Django, но не знаете, с чего начать? Расскажем, как быстро создать функциональное приложение, которое продемонстрирует базовые возможности фреймворка.
https://proglib.io/p/django-s-nulya-chast-1-pishem-mnogopolzovatelskiy-blog-dlya-kluba-lyubiteley-zadach-python-2022-06-06
Библиотека программиста
🐍🚀 Django с нуля. Часть 1: пишем многопользовательский блог для клуба любителей задач Python
Собираетесь изучать Django, но не знаете, с чего начать? Расскажем, как быстро создать функциональное приложение, которое продемонстрирует базовые возможности фреймворка.
Библиотека Selenium
Функционал библиотеки необходим для работы с браузером. В тестировании она является одной из самых популярных. При выполнении кода с картинки откроется браузер Chrome и перейдет на сайт python.org, а также выберет первый html-элемент с классом button.
Возможности библиотеки:
1. Автоматизация работы браузера.
2. Парсинг сайтов, нажатия на кнопки.
3. Эмуляция различных действий пользователя.
4. Отправка GET/POST запросов.
Документация доступна по ссылке.
Функционал библиотеки необходим для работы с браузером. В тестировании она является одной из самых популярных. При выполнении кода с картинки откроется браузер Chrome и перейдет на сайт python.org, а также выберет первый html-элемент с классом button.
Возможности библиотеки:
1. Автоматизация работы браузера.
2. Парсинг сайтов, нажатия на кнопки.
3. Эмуляция различных действий пользователя.
4. Отправка GET/POST запросов.
Документация доступна по ссылке.
Упрощенная работа с JSON
Есть один интересный пакет
Основные примеры использования показаны на картинке. Метод
Возможностей у пакета достаточно, поэтому он вполне достоин изучения и применения в проектах. Подробнее можно узнать в документации.
Есть один интересный пакет
JMESpath, который позволяет декларативно указать, как извлекать элементы из JSON. Основные примеры использования показаны на картинке. Метод
search принимает паттерн, по которому требуется извлечь данные, а также словарь, который сам похож на JSON. Возможностей у пакета достаточно, поэтому он вполне достоин изучения и применения в проектах. Подробнее можно узнать в документации.
Конвертируем из JPG в PNG с помощью Pillow
Для конвертации нам понадобится открыть изображение и просто сохранить его в другом формате.
PNG-формат идеально подходит для фотографий, и при этом позволяет сохранить даже лучшее качество снимков, чем JPG. PNG также поддерживает прозрачность, поэтому это почти идеальный вариант для дизайнеров, которым нужны прозрачные элементы.
Для конвертации нам понадобится открыть изображение и просто сохранить его в другом формате.
PNG-формат идеально подходит для фотографий, и при этом позволяет сохранить даже лучшее качество снимков, чем JPG. PNG также поддерживает прозрачность, поэтому это почти идеальный вариант для дизайнеров, которым нужны прозрачные элементы.
🐍🧩 Словари в Python: 12 задач для начинающих с решениями
Решаем задачи и прокачиваем навык работы со словарями, используя методы get(), setdefault(), генераторы словарей и сортировку с помощью лямбда-функций.
https://proglib.io/p/slovari-v-python-12-zadach-dlya-nachinayushchih-s-resheniyami-2022-01-28
Решаем задачи и прокачиваем навык работы со словарями, используя методы get(), setdefault(), генераторы словарей и сортировку с помощью лямбда-функций.
https://proglib.io/p/slovari-v-python-12-zadach-dlya-nachinayushchih-s-resheniyami-2022-01-28
Библиотека программиста
🐍🧩 Словари в Python: 12 задач для начинающих с решениями
Решаем задачи и прокачиваем навык работы со словарями, используя методы get(), setdefault(), генераторы словарей и сортировку с помощью лямбда-функций.
Junior Python Developer: полный разбор собеседования и ответы на наиболее частые вопросы интервью
Прохождение интервью в первый раз, когда ты ищешь работу на позицию начинающего разработчика, сложно и страшно. В видео полный разбор вопросов, которые чаще всего задают людям, ищущим работу программистом.
https://youtu.be/fgXCN7A8yzg
Прохождение интервью в первый раз, когда ты ищешь работу на позицию начинающего разработчика, сложно и страшно. В видео полный разбор вопросов, которые чаще всего задают людям, ищущим работу программистом.
https://youtu.be/fgXCN7A8yzg
YouTube
Junior Python Developer: полный разбор собеседования и ответы на наиболее частые вопросы интервью
Прохождение интервью в первый раз, когда ты ищешь работу на позицию начинающего разработчика сложно и страшно. Я пригласил Игоря, который недавно прошел Python курсы и теперь планирует устроиться на работу. И провел с ним детальное интервью как с начинающим…
Загружаем страницу из интернета
Для простой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.
Функция urlopen позволяет загрузить страничку. Однако при использовании подобного метода страница загрузится без элементов, загруженных с помощью Javascript и других серверных технологий.
Для простой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.
Функция urlopen позволяет загрузить страничку. Однако при использовании подобного метода страница загрузится без элементов, загруженных с помощью Javascript и других серверных технологий.
Как проверить, начинается ли строка с определенного слова в Python?
Чтобы проверить, начинается ли строка со слова в Python, используйте regex для «starts with» и само слово. Здесь мы будем использовать функцию rе.sеаrсh() для сопоставления выражения со строкой и выяснения, начинается ли строка с данного слова или нет.
Чтобы проверить, начинается ли строка со слова в Python, используйте regex для «starts with» и само слово. Здесь мы будем использовать функцию rе.sеаrсh() для сопоставления выражения со строкой и выяснения, начинается ли строка с данного слова или нет.
Аннотация типов
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде.
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде.
object
Базовый класс, от которого неявно наследуются все классы в Python.
Один из его полезных методов является str, который вернет нам строковое представления объекта.
При его вызове на выходе получим что-то такое: <main.MyClass object at 0x00893C28>
Но мы всегда можем переопределить метод и вернуть более понятное описание объекта.
Базовый класс, от которого неявно наследуются все классы в Python.
Один из его полезных методов является str, который вернет нам строковое представления объекта.
При его вызове на выходе получим что-то такое: <main.MyClass object at 0x00893C28>
Но мы всегда можем переопределить метод и вернуть более понятное описание объекта.
Что выведет код?
Anonymous Quiz
61%
{0, 1, 2, 3, 4}
7%
{1, 2, 3, 4, 5}
16%
{range(0, 5)}
13%
Error
3%
Другое
Передаем функцию в качестве аргумента
Работая с разными группами данных мы не всегда можем точно определить, с помощью какого алгоритма обрабатывать те или иные данные. Возможность языка передать функцию в качестве аргумента здорово позволяет упростить этот процесс.
Мы просто передадим в функцию обработки нужный алгоритм и дело в шляпе!
Работая с разными группами данных мы не всегда можем точно определить, с помощью какого алгоритма обрабатывать те или иные данные. Возможность языка передать функцию в качестве аргумента здорово позволяет упростить этот процесс.
Мы просто передадим в функцию обработки нужный алгоритм и дело в шляпе!
Удаление красного, зеленого и синего канала из цветного изображения в Python
Чтобы удалить красный канал из цветного изображения, считываем изображение в массив BGR с помощью cv2.imread() и присваиваем нули 2D-массиву, соответствующему красному каналу. В этом удаляется красный канал с изображения. Ознакомиться подробнее c удалением других каналов можно здесь.
Чтобы удалить красный канал из цветного изображения, считываем изображение в массив BGR с помощью cv2.imread() и присваиваем нули 2D-массиву, соответствующему красному каналу. В этом удаляется красный канал с изображения. Ознакомиться подробнее c удалением других каналов можно здесь.
Сортировка объектов по нескольким ключам
Предположим, мы хотим отсортировать список словарей. Но мы не просто хотим сортировать их, допустим, по имени или возрасту, мы хотим отсортировать их по обоим полям.
На самом деле существует очень простое решение этой проблемы, благодаря гарантии Python, что функции сортировки обеспечивают устойчивость сортировки. Это означает, что элементы, которые сравниваются, сохраняют свой первоначальный порядок.
Чтобы добиться сортировки по имени и возрасту, можно воспользоваться примером с картинки. В нем сначала словарь сортируется по возрасту, а потом по имени. С помощью
Имена сортируются в первую очередь, возраст сортируется, если имя совпадает. Таким образом, все Джоны сгруппированы по возрасту.
Предположим, мы хотим отсортировать список словарей. Но мы не просто хотим сортировать их, допустим, по имени или возрасту, мы хотим отсортировать их по обоим полям.
На самом деле существует очень простое решение этой проблемы, благодаря гарантии Python, что функции сортировки обеспечивают устойчивость сортировки. Это означает, что элементы, которые сравниваются, сохраняют свой первоначальный порядок.
Чтобы добиться сортировки по имени и возрасту, можно воспользоваться примером с картинки. В нем сначала словарь сортируется по возрасту, а потом по имени. С помощью
operator.itemgetter() мы получаем поля возраста и имени из каждого словаря в списке.Имена сортируются в первую очередь, возраст сортируется, если имя совпадает. Таким образом, все Джоны сгруппированы по возрасту.
Константы пакета string
Встроенный модуль string предоставляет расширенный функционал для работы со строками.
Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string.
Встроенный модуль string предоставляет расширенный функционал для работы со строками.
Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string.
Метод Counter.most_common()
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
🐍 Функции в Python: 5 задач для тренировки *args, **kwargs и lambda-функций
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.
https://proglib.io/p/funkcii-v-python-5-zadach-dlya-trenirovki-args-kwargs-i-lambda-funkciy-2022-06-15
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.
https://proglib.io/p/funkcii-v-python-5-zadach-dlya-trenirovki-args-kwargs-i-lambda-funkciy-2022-06-15
Библиотека программиста
🐍 Функции в Python: 5 задач для тренировки *args, **kwargs и lambda-функций
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.