Использование списков в качестве стеков
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод
Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
Блог разраба со стажем
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод
append, для извлечения – pop.Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
Блог разраба со стажем
❤53🤯21😁5🔥1
Добавляем классу большую функциональность
На прошлой неделе мы объясняли декоратор
Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать.
В чем же разница?
Блог разраба со стажем
На прошлой неделе мы объясняли декоратор
@classmethod, а сейчас рассмотрим @staticmethod. @staticmethod можно воспринимать как метод, который "не знает, к какому классу относится". Он просто получает переданные аргументы, без неявного первого аргумента, и его определение не изменяется через наследование. Еще раз: статические методы прикреплены к классу лишь для удобства — и не могут менять состояние ни класса, ни его экземпляра.Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать.
В чем же разница?
@classmethod используется в суперклассе для определения того, как метод должен вести себя, когда он вызывается разными дочерними классами. @staticmethod используется, когда мы хотим вернуть объект, независимо от вызываемого дочернего класса.Блог разраба со стажем
❤63🤯31😁10🔥5
Выполняем код по расписанию
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция
Блог разраба со стажем
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция
attime будет выполняться каджую минуту с 6 утра до 10 вечера в рабочие дни недели. Подробнее о написании своих расписаний можно почитать тут.Блог разраба со стажем
🔥39❤35👍10🤯10
Дескрипторы
Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его поведение переопределяется методом протокола дескриптора. Если хотя бы один из этих методов определен в объекте, то можно сказать, что этот метод – дескриптор.
Для того, чтобы определить свой собственный дескриптор, обычно определяют три специальных метода класса
Де После этого можно создать новый класс и в атрибут этого класса записать объект типа дескриптор.
У данного объекта будет переопределено поведение при доступе к атрибуту (
Блог разраба со стажем
Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его поведение переопределяется методом протокола дескриптора. Если хотя бы один из этих методов определен в объекте, то можно сказать, что этот метод – дескриптор.
Для того, чтобы определить свой собственный дескриптор, обычно определяют три специальных метода класса
__get__,ДескриптоиликрипторыДе После этого можно создать новый класс и в атрибут этого класса записать объект типа дескриптор.
У данного объекта будет переопределено поведение при доступе к атрибуту (
__get__), при присваивании значений (__set__) или при удалении (__delete__).Блог разраба со стажем
❤48🤯21😁9🔥4
Строим графики
Для построения графиков в Python существует библиотека Matplotlib. Это мощный инструмент для визуализации данных.
Сначала нам нужен массив с данными, которые мы хотим изобразить на графике. Это может быть, например, список или
Далее метод
Метод
Пример графика можно посмотреть здесь, а официальную документацию по Matplotlib можно почитать тут.
Блог разраба со стажем
Для построения графиков в Python существует библиотека Matplotlib. Это мощный инструмент для визуализации данных.
Сначала нам нужен массив с данными, которые мы хотим изобразить на графике. Это может быть, например, список или
numpy массив.Далее метод
plt.plot(data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.Метод
plt.show() откроет графическое окно с изображенным графиком.Пример графика можно посмотреть здесь, а официальную документацию по Matplotlib можно почитать тут.
Блог разраба со стажем
❤78🤯37🔥25😁11👍4
FastAPI — основы backend разработки на Python
Курс нацелен на освоение базовых навыков backend разработки на фреймворке FastAPI. Вы поймете, какие технологии необходимо освоить, чтобы стать Junior backend Python разработчиком, а также изучите основы этих технологий на примере полноценного проекта — аналога приложения Тинькофф Инвестиции.
📹 Cмотреть курс: Stepik
Блог разраба со стажем
Курс нацелен на освоение базовых навыков backend разработки на фреймворке FastAPI. Вы поймете, какие технологии необходимо освоить, чтобы стать Junior backend Python разработчиком, а также изучите основы этих технологий на примере полноценного проекта — аналога приложения Тинькофф Инвестиции.
📹 Cмотреть курс: Stepik
Блог разраба со стажем
🔥61❤41👍18
⌨️ Подробный гайд по созданию микросервисов с использованием Spring Boot.
В этом учебном пособии показано как создавать микросервис с использованием Spring Boot 3, Spring Cloud и базы данных PostgreSQL.
В этом микросервисном проекте вы изучите такие важные понятия, как
⛓ Ознакомиться: тут
Блог разраба со стажем
В этом учебном пособии показано как создавать микросервис с использованием Spring Boot 3, Spring Cloud и базы данных PostgreSQL.
В этом микросервисном проекте вы изучите такие важные понятия, как
API Gateway, Config Server, Discovery Server, и практически реализуете два реальных микросервиса - Student и School.⛓ Ознакомиться: тут
Блог разраба со стажем
❤49🤯21😁11🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Найден лучший способ программировать с помощью ИИ
CursorAI — это полноценная среда разработки, оснащённая множеством полезных ИИ-инструментов, созданных специально для программистов
Одним нажатием клавиши она может дописать целый блок кода, учитывая задачу, или ответить на любой вопрос по проекту
⛓ Ознакомиться: тут
Блог разраба со стажем
CursorAI — это полноценная среда разработки, оснащённая множеством полезных ИИ-инструментов, созданных специально для программистов
Одним нажатием клавиши она может дописать целый блок кода, учитывая задачу, или ответить на любой вопрос по проекту
⛓ Ознакомиться: тут
Блог разраба со стажем
🔥18❤8👍3🤯1
Большая актуальная базу бесплатных API, которая обновляется ежедневно
Алгоритмы присваивают рейтинг каждому API на основе надежности, частоты ошибок и времени отклика
Если API перестает работать или становится платным, он теряет рейтинг и удаляется с сайта. Это полезный ресурс для студентов и разработчиков, которые ищут доступные и рабочие API
⛓ Ознакомиться: Тык
Блог разраба со стажем
Алгоритмы присваивают рейтинг каждому API на основе надежности, частоты ошибок и времени отклика
Если API перестает работать или становится платным, он теряет рейтинг и удаляется с сайта. Это полезный ресурс для студентов и разработчиков, которые ищут доступные и рабочие API
⛓ Ознакомиться: Тык
Блог разраба со стажем
❤47🔥25👍9
Курс «Уроки по GIT»
Курс по GIT начинает с основ: введения, установки и привязки ssh ключа. Далее учат создавать проект с Create React App и работать с gitignore, исключая папку idea. Обсуждается размещение проекта на GitHub через консоль и WebStorm, а также основы коммитов и их откат.
В программе также учат работать с удаленным репозиторием, клонировать, обновлять и создавать pull request. Углубленное изучение ветвлений включает их создание, слияние и разрешение конфликтов. Завершается курс созданием нескольких аккаунтов GitHub на одном компьютере.
📹 Cмотреть курс: тык
Блог разраба со стажем
Курс по GIT начинает с основ: введения, установки и привязки ssh ключа. Далее учат создавать проект с Create React App и работать с gitignore, исключая папку idea. Обсуждается размещение проекта на GitHub через консоль и WebStorm, а также основы коммитов и их откат.
В программе также учат работать с удаленным репозиторием, клонировать, обновлять и создавать pull request. Углубленное изучение ветвлений включает их создание, слияние и разрешение конфликтов. Завершается курс созданием нескольких аккаунтов GitHub на одном компьютере.
📹 Cмотреть курс: тык
Блог разраба со стажем
🔥86❤41👍16
Создаем бесконечный итератор
Функция
Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.
Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).
Мы также можем воспользоваться
Блог разраба со стажем
Функция
cycle() из itertools принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.
Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).
Мы также можем воспользоваться
islice(), который вернет итератор по подмножеству переданного объекта.Блог разраба со стажем
❤51🤯24😁6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Cегодня играем в Oh My God Git — это веселая и увлекательная игра с открытым исходным кодом, которая с помощью карточек объясняет логику работы GIT и помогает освоить его на практике.
Поиграть можно прямо на сайте или установить локально с GitHub
Блог разраба со стажем
Поиграть можно прямо на сайте или установить локально с GitHub
Блог разраба со стажем
❤48🔥24👍11
Сортировка списков по ключу
У списков есть метод
Но еще есть аргумент
В коде на картинке у нас есть список из словарей, которые содержать описания машин. И в качестве мы отсортировали список по годам их выпуска, то есть по ключу
Также вместо написания обычных функций были применены анонимные, чтобы закрепить недавнюю тему о них.
Блог разраба со стажем
У списков есть метод
sort(), который сортирует элементы. Также есть аргумент reverse, с помощью которого можно отсортировать в обратном порядке при значении True.Но еще есть аргумент
key, отвечающий за критерий сортировки. Он принимает функцию, которая применяется к каждому элементу. Возвращаемый результат и есть критерий, по которому произойдет сортировка.В коде на картинке у нас есть список из словарей, которые содержать описания машин. И в качестве мы отсортировали список по годам их выпуска, то есть по ключу
'year'.Также вместо написания обычных функций были применены анонимные, чтобы закрепить недавнюю тему о них.
Блог разраба со стажем
❤61🤯30😁8🔥4
Шпаргалка по сложности алгоритмов
Здесь приведена подробная информация об асимптотике алгоритмов — их сложность в оптимальном и наихудшем случае, как меняется сложность при использовании разных структур и т.д
⛓ Ознакомиться: тут
Блог разраба со стажем
Здесь приведена подробная информация об асимптотике алгоритмов — их сложность в оптимальном и наихудшем случае, как меняется сложность при использовании разных структур и т.д
⛓ Ознакомиться: тут
Блог разраба со стажем
❤82🤯37😁9🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
👻 Поступил весьма информативный материал по основам алгоритмов.
Это отличный способ обновить свои знания, которые обязательно пригодятся на собеседовании, а также на работе.
🎆 Данный ресурс интерактивный и включает секции с галочками. Среди тем: методы проектирования алгоритмов, решение реальных программных задач, последовательные алгоритмы и многое другое.
⛓ Ознакомиться: тут
Блог разраба со стажем
Это отличный способ обновить свои знания, которые обязательно пригодятся на собеседовании, а также на работе.
🎆 Данный ресурс интерактивный и включает секции с галочками. Среди тем: методы проектирования алгоритмов, решение реальных программных задач, последовательные алгоритмы и многое другое.
⛓ Ознакомиться: тут
Блог разраба со стажем
❤54🤯30😁8🔥4
Метод join у строк
У строк есть полезный метод
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
Блог разраба со стажем
У строк есть полезный метод
str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки.Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
Блог разраба со стажем
❤70🤯32😁8🔥4
Высокая доступность, масштабируемость и пропускная способность: шпаргалка по проектированию системы с типичными решениями
🔜 Источник
Блог разраба со стажем
🔜 Источник
Блог разраба со стажем
❤49🤯23😁7🔥4
Бесконечность
Вообще
Строковые литералы
Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
Блог разраба со стажем
Вообще
float является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number мы уже писали, а вот сегодня поговорим про infinity. Строковые литералы
'inf' и 'infinity' можно конвертировать в float, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом. Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
Блог разраба со стажем
❤58🤯31😁8🔥4
⚡️ 6 основных юзкейсов ElasticSearch
⏩ Полнотекстовый поиск
⏩ Аналитика в реальном времени
⏩ Машинное обучение
⏩ Приложения для работы с геоданными
⏩ Анализ данных логов и событий
⏩ SIEM
🔜 Источник
Блог разраба со стажем
⏩ Полнотекстовый поиск
⏩ Аналитика в реальном времени
⏩ Машинное обучение
⏩ Приложения для работы с геоданными
⏩ Анализ данных логов и событий
⏩ SIEM
🔜 Источник
Блог разраба со стажем
❤62🤯31😁10🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Расширение, которое поможет тебе тренировать навыки кодинга каждый раз, когда ты открываешь вкладку
Ты будешь получать новый фрагмент кода из разных категорий: вопросы на собеседовании, языки программирования и т.д
Все фрагменты можно сохранить на потом, чтобы использовать, когда будет нужно.
⛓ Ознакомиться: Тык
Блог разраба со стажем
Ты будешь получать новый фрагмент кода из разных категорий: вопросы на собеседовании, языки программирования и т.д
Все фрагменты можно сохранить на потом, чтобы использовать, когда будет нужно.
⛓ Ознакомиться: Тык
Блог разраба со стажем
❤59🔥29👍10
Проектирование архитектуры API: Как правильно проектировать, развивать и эксплуатировать API
Авторы: Брайант Д., Гоф Дж., Оберн М.
Год: 2024
📂 Скачать
Блог разраба со стажем
Авторы: Брайант Д., Гоф Дж., Оберн М.
Год: 2024
📂
Блог разраба со стажем
❤77🤯39😁7🔥6