Алгоритмы и структуры данных на Python с примерами кода + видео.
Алгоритм Кнута-Морриса-Пратта (КМП-алгоритм) | Алгоритмы на Python
Алгоритм Бойера-Мура-Хорспула | Алгоритмы на Python
Алгоритм Дейкстры (Dijkstra’s algorithm) | Алгоритмы на Python
Алгоритм Флойда (Floyd’s algorithm) | Алгоритмы на Python
Алгоритм Форда-Фалкерсона | Алгоритмы на Python
Алгоритм Краскала (Kruskal’s algorithm) | Алгоритмы на Python
Алгоритм Прима (ближайшего соседа) | Алгоритмы на Python
Сортировка выбором | Алгоритмы на Python
Сортировка вставками | Алгоритмы на Python
Сортировка пузырьком (метод всплывающего пузырька) | Алгоритмы на Python
Слияние двух упорядоченных списков | Алгоритмы на Python
Быстрая сортировка слиянием (merge sort) | Алгоритмы на Python
Быстрая сортировка Хоара | Алгоритмы на Python
Стек типа LIFO (Last-In-First-Out) | Алгоритмы на Python
Делаем очередь (queue) | Алгоритмы на Python
https://bookflow.ru/algoritmy-i-struktury-dannyh-na-python/
@BookPython
Алгоритм Кнута-Морриса-Пратта (КМП-алгоритм) | Алгоритмы на Python
Алгоритм Бойера-Мура-Хорспула | Алгоритмы на Python
Алгоритм Дейкстры (Dijkstra’s algorithm) | Алгоритмы на Python
Алгоритм Флойда (Floyd’s algorithm) | Алгоритмы на Python
Алгоритм Форда-Фалкерсона | Алгоритмы на Python
Алгоритм Краскала (Kruskal’s algorithm) | Алгоритмы на Python
Алгоритм Прима (ближайшего соседа) | Алгоритмы на Python
Сортировка выбором | Алгоритмы на Python
Сортировка вставками | Алгоритмы на Python
Сортировка пузырьком (метод всплывающего пузырька) | Алгоритмы на Python
Слияние двух упорядоченных списков | Алгоритмы на Python
Быстрая сортировка слиянием (merge sort) | Алгоритмы на Python
Быстрая сортировка Хоара | Алгоритмы на Python
Стек типа LIFO (Last-In-First-Out) | Алгоритмы на Python
Делаем очередь (queue) | Алгоритмы на Python
https://bookflow.ru/algoritmy-i-struktury-dannyh-na-python/
@BookPython
👍14
Правильный способ сравнения чисел с плавающей точкой в Python
В этой статье вы узнаете:
Почему числа с плавающей точкой являются неточными
Почему часто встречаются ошибки представления чисел с плавающей точкой
Как правильно сравнивать значения с плавающей точкой в Python
Как точно представлять числа с помощью типов Python Fraction и Decimal
https://bookflow.ru/pravilnyj-sposob-sravneniya-chisel-s-plavayushhej-tochkoj-v-python/
@BookPython
В этой статье вы узнаете:
Почему числа с плавающей точкой являются неточными
Почему часто встречаются ошибки представления чисел с плавающей точкой
Как правильно сравнивать значения с плавающей точкой в Python
Как точно представлять числа с помощью типов Python Fraction и Decimal
https://bookflow.ru/pravilnyj-sposob-sravneniya-chisel-s-plavayushhej-tochkoj-v-python/
@BookPython
👍10🔥3
YaTalks: 3 и 4 декабря
На главной конференции Яндекса для IT-сообщества на треке про бэкенд обсудят, что сообществу разработчиков ждать от создателей баз данных: узнаем, какова внутренняя логика в развитии баз данных, движков хранения, языков запросов, почему БД развивались именно так и какие перспективные разработки сейчас ведутся. Будут и другие темы: узнать подробнее о программе и следить за обновлениями можно на сайте.
Кроме того, участников ждут дискуссии, доклады и интерактивные форматы на треках про фронтенд, мобильную разработку и ML. Присоединиться можно из любой точки мира: конференция пройдет полностью онлайн.
Программа и регистрация
На главной конференции Яндекса для IT-сообщества на треке про бэкенд обсудят, что сообществу разработчиков ждать от создателей баз данных: узнаем, какова внутренняя логика в развитии баз данных, движков хранения, языков запросов, почему БД развивались именно так и какие перспективные разработки сейчас ведутся. Будут и другие темы: узнать подробнее о программе и следить за обновлениями можно на сайте.
Кроме того, участников ждут дискуссии, доклады и интерактивные форматы на треках про фронтенд, мобильную разработку и ML. Присоединиться можно из любой точки мира: конференция пройдет полностью онлайн.
Программа и регистрация
🔥3👍1
Обработка больших файлов JSON в Python без нехватки памяти
https://pythonspeed.com/articles/json-memory-streaming/
@BookPython
https://pythonspeed.com/articles/json-memory-streaming/
@BookPython
👍6
🎄X-MAS HACK 2022 – время исполнения желаний🎄
👨🏻💻Если ты кодишь – ждём тебя в секции «Хакатон» с кейсами от IT-компаний
💡Если ты настоящий генератор идей – ждём в секции «Идеатон», где ты сможешь предложить самые смелые идеи для бизнеса!
Даты хакатона: 15–18 декабря 2022 года
Дедлайн регистрации: 12 декабря 23:59
Регистрация и подробности:
⚡️Хакатон - https://clck.ru/32kc5u
✨Идеатон - https://clck.ru/32kc5T
Создавай команду или подавай личную заявку, а мы найдем для тебя крутую команду! Регистрируйся, решай новогодний кейс, заводи знакомства, перенимай опыт от топовых экспертов, стань частью X-MAS HACK! И кто знает.. возможно, именно ты заберешь главные призы!
💰Призовой фонд – 1.700.000 рублей!
🎁 Новогодний мерч, подарки от партнеров и сертификаты
🎅🏻 Менторская поддержка от топовых экспертов
🪄 Мастер-классы, лайфхаки и много полезных знакомств
Больше хакатонов и призов - https://clck.ru/32kc6S
#хакатон #идеатон
👨🏻💻Если ты кодишь – ждём тебя в секции «Хакатон» с кейсами от IT-компаний
💡Если ты настоящий генератор идей – ждём в секции «Идеатон», где ты сможешь предложить самые смелые идеи для бизнеса!
Даты хакатона: 15–18 декабря 2022 года
Дедлайн регистрации: 12 декабря 23:59
Регистрация и подробности:
⚡️Хакатон - https://clck.ru/32kc5u
✨Идеатон - https://clck.ru/32kc5T
Создавай команду или подавай личную заявку, а мы найдем для тебя крутую команду! Регистрируйся, решай новогодний кейс, заводи знакомства, перенимай опыт от топовых экспертов, стань частью X-MAS HACK! И кто знает.. возможно, именно ты заберешь главные призы!
💰Призовой фонд – 1.700.000 рублей!
🎁 Новогодний мерч, подарки от партнеров и сертификаты
🎅🏻 Менторская поддержка от топовых экспертов
🪄 Мастер-классы, лайфхаки и много полезных знакомств
Больше хакатонов и призов - https://clck.ru/32kc6S
#хакатон #идеатон
🔥2👍1
Forwarded from Книги по Python | Books Python 📚
Python на примерах Практический курс по программированию
Н. А. Васильев (2019)
Изучать язык программирования можно по-разному: смотря лекции, читая книги или документацию или уделяя всё время практике. Данное руководство посвящено последнему способу - и учит своих читателей тому, как создавать приложения на языке программирования Python. Вы научитесь использовать все главные функции языка для решения своих задач, а также познакомитесь с объектно-ориентированный языком программирования.
В книге рассматриваются следующие темы:
✔ управляющие инструкции;
✔ функции;
✔ списки и кортежи;
✔ множества, словари и текст;
✔ основы объектно-ориентированного программирования и многое другое.
Скачать
👉 @python_360
Н. А. Васильев (2019)
Изучать язык программирования можно по-разному: смотря лекции, читая книги или документацию или уделяя всё время практике. Данное руководство посвящено последнему способу - и учит своих читателей тому, как создавать приложения на языке программирования Python. Вы научитесь использовать все главные функции языка для решения своих задач, а также познакомитесь с объектно-ориентированный языком программирования.
В книге рассматриваются следующие темы:
✔ управляющие инструкции;
✔ функции;
✔ списки и кортежи;
✔ множества, словари и текст;
✔ основы объектно-ориентированного программирования и многое другое.
Скачать
👉 @python_360
👍6
Как извлечь текст из изображений в PDF-файлах с помощью Python
В этой статье я собираюсь показать вам следующие процессы OCR-сканера:
Как запустить OCR-сканер на файле изображения.
Как отредактировать или выделить определенный текст в файле изображения.
Как запустить OCR-сканер на PDF-файле или коллекции PDF-файлов.
https://itmozg.ru/kak-izvlech-tekst-iz-izobrazhenij-v-pdf-fajlah-s-pomoshhju-python/
@BookPython
В этой статье я собираюсь показать вам следующие процессы OCR-сканера:
Как запустить OCR-сканер на файле изображения.
Как отредактировать или выделить определенный текст в файле изображения.
Как запустить OCR-сканер на PDF-файле или коллекции PDF-файлов.
https://itmozg.ru/kak-izvlech-tekst-iz-izobrazhenij-v-pdf-fajlah-s-pomoshhju-python/
@BookPython
🔥9👍3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Reading and Writing Videos using OpenCV
https://learnopencv.com/reading-and-writing-videos-using-opencv/
@BookPython
https://learnopencv.com/reading-and-writing-videos-using-opencv/
@BookPython
👍4
Forwarded from Python академия
IP-адрес
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
👍11👎2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Чтение, просмотр и запись изображения с помощью OpenCV
Чтение, просмотр и запись изображений являются основными в обработке изображений и компьютерном зрении. Даже при обрезке, изменении размера, повороте или применении различных фильтров для обработки изображений, сначала вам потребуется прочитать изображения. Поэтому важно, чтобы вы освоили эти базовые операции.
https://itmozg.ru/chtenie-prosmotr-i-zapis-izobrazhenija-s-pomoshhju-opencv/
@BookPython
Чтение, просмотр и запись изображений являются основными в обработке изображений и компьютерном зрении. Даже при обрезке, изменении размера, повороте или применении различных фильтров для обработки изображений, сначала вам потребуется прочитать изображения. Поэтому важно, чтобы вы освоили эти базовые операции.
https://itmozg.ru/chtenie-prosmotr-i-zapis-izobrazhenija-s-pomoshhju-opencv/
@BookPython
👍2
Подборка Telegram каналов для программистов🔥
Сохраняйте, чтоб не потерять.
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/xakep_1 Статьи из "Хакера"
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360
DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео
Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
Excel лайфхак📌
https://t.me/Excel_lifehack
Сохраняйте, чтоб не потерять.
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/xakep_1 Статьи из "Хакера"
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
CodePen 📌
https://t.me/codepen_1 Сообщество пользователей CodePen
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
https://t.me/arhitekturamira World Architecture
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика
Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Метавселенная, GameFi, Crypto 📌
https://t.me/metaverse360
DeepFake 📌
https://t.me/deepfakenow Публикуем deepfake видео
Мир технологий 📌
https://t.me/mir_teh Видео из мира технологий
Excel лайфхак📌
https://t.me/Excel_lifehack
👍3
Forwarded from Python академия
Выход пользователя из профиля
Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.
В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.
Подписывайтесь на канал 👉@pythonofff
Пользователь успешно прошел процедуру аутентификации, но… как теперь выйти? Можно было бы зайти в админку и выйти оттуда, однако есть способ получше. Добавим ссылку выхода, которая будет перенаправлять человека на домашнюю страницу. Благодаря системе аутентификации Django, добиться такого сценария проще простого.
В файле шаблона base.html добавим ссылку {% url 'logout' %} для выхода сразу после приветствия пользователя.
Подписывайтесь на канал 👉@pythonofff
👍9
Скоро собеседование, а ты не готов? Прислали тестовое задание, но есть вопросы по решению? Не можешь объективно оценить уровень своих знаний и понять, как развиваться дальше?
Все эти и другие вопросы ты можешь решить в FORKWAY.
FORKWAY - это инструмент для:
- формирования плана развития компетенций
- подготовки к собеседованию в экспресс формате
- разбора тестовых заданий
- онлайн-консультаций с экспертами
Чтобы тебе было проще сделать первый шаг, мы дарим промокод PROMO20 на получение индивидуального плана развития.
Все эти и другие вопросы ты можешь решить в FORKWAY.
FORKWAY - это инструмент для:
- формирования плана развития компетенций
- подготовки к собеседованию в экспресс формате
- разбора тестовых заданий
- онлайн-консультаций с экспертами
Чтобы тебе было проще сделать первый шаг, мы дарим промокод PROMO20 на получение индивидуального плана развития.
🔥8👍4
Forwarded from Реальный Python
🌲 Find the Height of a Binary Tree
https://www.pythonforbeginners.com/data-structures/find-the-height-of-a-binary-tree
👉 @python_real
https://www.pythonforbeginners.com/data-structures/find-the-height-of-a-binary-tree
👉 @python_real
👍3
Data Science | Machinelearning - самый большой русскоязычный канал с полезными материалами на такие темы как, Machine Learning, Data Science, Алгоритмы, Python. Так же часто публикуются крутые 🔥 вакансии.
👉 Вам сюда: @devsp
А любителям читать статьи в оригинале вот сюда:
👉 @ds_international
Добро пожаловать!
👉 Вам сюда: @devsp
А любителям читать статьи в оригинале вот сюда:
👉 @ds_international
Добро пожаловать!
Используете ли вы консоль Python и математические библиотеки в качестве калькулятора?
https://old.reddit.com/r/Python/comments/n6wt6y/do_you_also_use_the_python_console_and_the_python/
@BookPython
https://old.reddit.com/r/Python/comments/n6wt6y/do_you_also_use_the_python_console_and_the_python/
@BookPython
Reddit
From the Python community on Reddit
Explore this post and more from the Python community
👍3
Как выполняется интерполяция строк?
Без импорта класса Template есть три способа интерполяции строк:
@BookPython
Без импорта класса Template есть три способа интерполяции строк:
name = 'Chris'
# 1. f strings
print(f'Hello {name}')
# 2. % operator
print('Hey %s %s' % (name, name))
# 3. format
print(
"My name is {}".format((name))
)
@BookPython
👍8
👍 У вас уже есть идеальный тестировщик
Осталось его только прокачать.
Контур — IT-компания, которая за 30+ лет разработала более 70 продуктов. В команде свыше 150 тестировщиков. У нас большой опыт обучения внутри компании и мы готовы делиться им на собственной учебной платформе — в Контур.Школе.
Мы обучаем специалистов всех уровней — от начинающего тестировщика до ведущего.
Выбирайте нужный уровень и давайте расти — вместе с командой и бизнесом.
Узнать, как прокачать тестировщика >
Осталось его только прокачать.
Контур — IT-компания, которая за 30+ лет разработала более 70 продуктов. В команде свыше 150 тестировщиков. У нас большой опыт обучения внутри компании и мы готовы делиться им на собственной учебной платформе — в Контур.Школе.
Мы обучаем специалистов всех уровней — от начинающего тестировщика до ведущего.
Выбирайте нужный уровень и давайте расти — вместе с командой и бизнесом.
Узнать, как прокачать тестировщика >
👍3
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
В статье делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
https://habr.com/ru/company/selectel/blog/704040/
@BookPython
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
В статье делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
https://habr.com/ru/company/selectel/blog/704040/
@BookPython
👍12🤩1