Давайте проверим ваши знания работы бинарного дерева поиска. Посмотрите на изображение и ответьте на вопрос ниже.
#викторина #bst
#викторина #bst
Что произойдет при добавлении узла со значением 25 в бинарное дерево поиска (BST) на изображении выше?
Anonymous Quiz
9%
Узел 25 добавится справа от узла 20
4%
Узел 25 добавится слева от узла 20
72%
Узел 25 не будет добавлен, так как уже существует
5%
Узел 25 добавится справа от узла 10
10%
Узел 25 не будет добавлен, так как справа от числа 20 уже есть число 40
Головоломка «Сапёр» на Python в 66 строк и её решение вероятностным алгоритмом
Автор статьи поставил себе задачу написать менее чем за 100 строк полноценную игру «сапёр». У него получилось уложиться в 66 строк, сделав игру, которая работает в консоли.
Посмотреть на реализацию можно в статье: https://habr.com/ru/articles/833494/
#gamedev
Смогли бы написать ещё короче?
Автор статьи поставил себе задачу написать менее чем за 100 строк полноценную игру «сапёр». У него получилось уложиться в 66 строк, сделав игру, которая работает в консоли.
Посмотреть на реализацию можно в статье: https://habr.com/ru/articles/833494/
#gamedev
Смогли бы написать ещё короче?
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Простой Python-скрипт + ИИ = оптимизация ваших рабочих процессов
Формула простая, как и этот туториал, после которого вы сможете использовать голосовой ввод с автоматической транскрибацией речи в текст в любом поле ввода на вашем компьютере. Важной особенностью скрипта будет его работа в фоне и автоматический вызов голосом по необходимости.
«Галя, у нас отмена» — и можно начинать курсач с чистого листа. Попробуете?
#гайд #ии #интересное
Формула простая, как и этот туториал, после которого вы сможете использовать голосовой ввод с автоматической транскрибацией речи в текст в любом поле ввода на вашем компьютере. Важной особенностью скрипта будет его работа в фоне и автоматический вызов голосом по необходимости.
«Галя, у нас отмена» — и можно начинать курсач с чистого листа. Попробуете?
#гайд #ии #интересное
👎2👍1
Как оптимизации в CPython повлияли на скорость работы Python
Автор твита на картинке заметил странное поведение Python. Когда он вызывал встроенную функцию min, производительность кода была ниже, чем если реализованный метод в самом коде.
Да, его код был написан ещё на Python 2. Сейчас ситуация стала гораздо лучше. Но почему? Автор этой статьи провёл несколько бенчмарков и поделился выводами:
https://habr.com/ru/companies/beget/articles/839348/
Автор твита на картинке заметил странное поведение Python. Когда он вызывал встроенную функцию min, производительность кода была ниже, чем если реализованный метод в самом коде.
Да, его код был написан ещё на Python 2. Сейчас ситуация стала гораздо лучше. Но почему? Автор этой статьи провёл несколько бенчмарков и поделился выводами:
https://habr.com/ru/companies/beget/articles/839348/
✍2🥱2❤1😁1
Forwarded from Метод утёнка
This media is not supported in your browser
VIEW IN TELEGRAM
Toolfolio — все нужные инструменты для ИИ и не только в одном месте
Берите на заметку и не теряйте этот сервис. Здесь собраны полезные нейронки под любую задачу, куча бесплатных аналогов популярных программ, а также целые библиотеки плагинов для ваших любимых сервисов.
#инструменты
Берите на заметку и не теряйте этот сервис. Здесь собраны полезные нейронки под любую задачу, куча бесплатных аналогов популярных программ, а также целые библиотеки плагинов для ваших любимых сервисов.
#инструменты
Простыми словами: B-дерево
В прошлом посте я рассказывал про бинарное дерево поиска. Теперь давайте разберём ещё одну популярную структуру данных.
B-дерево (B-tree) — это самобалансирующаяся структура данных, которая хранит данные в отсортированном виде, позволяя эффективно выполнять операции поиска, вставки и удаления. B-деревья часто используются в системах хранения данных, таких как базы данных и файловые системы, благодаря своей способности справляться с большими объемами данных и минимизировать количество операций чтения/записи на диске.
Структура B-дерева выглядит следующим образом:
1. Корень дерева: он содержит указатели на свои дочерние узлы.
2. Внутренние узлы: эти узлы содержат ключи и указатели на другие узлы дерева.
3. Листовые узлы: узлы на самом нижнем уровне дерева, которые содержат сами данные или указывают на них.
Каждый узел в B-дереве может содержать множество ключей и дочерних указателей, что позволяет дереву быть плоским и широким, а не высоким и узким.
Как я уже сказал, B-tree похожа на BST, но имеет ряд ключевых отличий:
Количество ключей в узле:
BST: Каждый узел содержит только один ключ и два дочерних узла (левого и правого).
B-tree: Каждый узел может содержать несколько ключей и производить разветвление на большее количество дочерних узлов (определяется порядком дерева).
Балансировка:
BST: Может стать несбалансированным, что приводит к увеличению высоты дерева и замедляет операции поиска.
B-tree: Остается сбалансированным благодаря встроенному механизму балансировки при вставке и удалении элементов.
Высота дерева:
BST: Может быть оправдано большой, так как каждый узел содержит только один ключ.
B-tree: Значительно меньше и площе, благодаря множеству ключей в одном узле.
Производительность при работе с большими данными:
BST: Из-за потенциально большой высоты дерева может потребоваться множество операций для поиска элемента.
B-tree: Более плоская структура минимизирует количество операций ввода-вывода, что особенно полезно при работе с внешней памятью и большими объемами данных.
В связи с этим можно выделить следующие преимущества B-дерева:
1. Более оптимизированное хранение больших объемов данных.
2. Автоматическая балансировка.
3. Эффективный доступ к данным благодаря низкой высоте дерева и множеству ключей в узлах.
Но где же применяется такая структура данных? Вот несколько примеров:
1. Базы данных. B-деревья широко используются в реляционных базах данных (MySQL, PostgreSQL) для реализации индексов, что позволяет эффективно выполнять операции поиска, вставки и удаления данных.
2. Файловые системы. Файловые системы, такие как NTFS и ext4, используют B-деревья для организации и управления файлами на диске, обеспечивая быструю навигацию и доступ.
Кэширование данных : Используются для быстрого доступа к часто запрашиваемым данным, улучшая производительность приложений.
Теперь вы знаете о ещё одном способе хранения данных. Какой вам кажется более удобным?
#простымисловами #структураданных #btree
В прошлом посте я рассказывал про бинарное дерево поиска. Теперь давайте разберём ещё одну популярную структуру данных.
B-дерево (B-tree) — это самобалансирующаяся структура данных, которая хранит данные в отсортированном виде, позволяя эффективно выполнять операции поиска, вставки и удаления. B-деревья часто используются в системах хранения данных, таких как базы данных и файловые системы, благодаря своей способности справляться с большими объемами данных и минимизировать количество операций чтения/записи на диске.
Структура B-дерева выглядит следующим образом:
1. Корень дерева: он содержит указатели на свои дочерние узлы.
2. Внутренние узлы: эти узлы содержат ключи и указатели на другие узлы дерева.
3. Листовые узлы: узлы на самом нижнем уровне дерева, которые содержат сами данные или указывают на них.
//пример бинарного дерева
[10, 20]
/ | \
[1, 2, 5] [15, 18] [25, 30, 35]
Каждый узел в B-дереве может содержать множество ключей и дочерних указателей, что позволяет дереву быть плоским и широким, а не высоким и узким.
Как я уже сказал, B-tree похожа на BST, но имеет ряд ключевых отличий:
Количество ключей в узле:
BST: Каждый узел содержит только один ключ и два дочерних узла (левого и правого).
B-tree: Каждый узел может содержать несколько ключей и производить разветвление на большее количество дочерних узлов (определяется порядком дерева).
Балансировка:
BST: Может стать несбалансированным, что приводит к увеличению высоты дерева и замедляет операции поиска.
B-tree: Остается сбалансированным благодаря встроенному механизму балансировки при вставке и удалении элементов.
Высота дерева:
BST: Может быть оправдано большой, так как каждый узел содержит только один ключ.
B-tree: Значительно меньше и площе, благодаря множеству ключей в одном узле.
Производительность при работе с большими данными:
BST: Из-за потенциально большой высоты дерева может потребоваться множество операций для поиска элемента.
B-tree: Более плоская структура минимизирует количество операций ввода-вывода, что особенно полезно при работе с внешней памятью и большими объемами данных.
В связи с этим можно выделить следующие преимущества B-дерева:
1. Более оптимизированное хранение больших объемов данных.
2. Автоматическая балансировка.
3. Эффективный доступ к данным благодаря низкой высоте дерева и множеству ключей в узлах.
Но где же применяется такая структура данных? Вот несколько примеров:
1. Базы данных. B-деревья широко используются в реляционных базах данных (MySQL, PostgreSQL) для реализации индексов, что позволяет эффективно выполнять операции поиска, вставки и удаления данных.
2. Файловые системы. Файловые системы, такие как NTFS и ext4, используют B-деревья для организации и управления файлами на диске, обеспечивая быструю навигацию и доступ.
Кэширование данных : Используются для быстрого доступа к часто запрашиваемым данным, улучшая производительность приложений.
Теперь вы знаете о ещё одном способе хранения данных. Какой вам кажется более удобным?
#простымисловами #структураданных #btree
👍10❤1
Гайд по обработке данных с помощью Pandas
Отличное руководство для новичков и тех, кто постоянно работает с Pandas. В статье досконально описаны стандартные методы фильтрации, объединения, приведения типов и другие операции, но даже для гуру найдётся пара новых приёмов. Вау-эффект гарантирован.
#гайд #pandas
Отличное руководство для новичков и тех, кто постоянно работает с Pandas. В статье досконально описаны стандартные методы фильтрации, объединения, приведения типов и другие операции, но даже для гуру найдётся пара новых приёмов. Вау-эффект гарантирован.
#гайд #pandas
❤7
Media is too big
VIEW IN TELEGRAM
Вы всё ещё логируете через f-string? Тогда мы идём к вам
В этом видео вы узнаете об основной особенности логирования в Python, связанной с рендером строк. Вы изучите основные особенности стандартной Python библиотеки logging и получите «best practices» промышленного логирования.
После такого f-string, конечно, останутся в вашем арсенале. Но вот захотите ли вы их использовать также часто, как раньше?
#видео #основы #bestpractices
В этом видео вы узнаете об основной особенности логирования в Python, связанной с рендером строк. Вы изучите основные особенности стандартной Python библиотеки logging и получите «best practices» промышленного логирования.
После такого f-string, конечно, останутся в вашем арсенале. Но вот захотите ли вы их использовать также часто, как раньше?
#видео #основы #bestpractices
👍5
Forwarded from Метод утёнка
Вышла Visual Studio Code 1.93
И это отличная новость, ведь теперь там есть поддержка профилей, если вам нужны разные конфигурации под различные задачи, а также улучшена поддержка Python. Наконец-то питонисты смогут по полной использовать этот редактор кода.
Подробнее о нововведениях в нашей статье.
#новости #vscode
И это отличная новость, ведь теперь там есть поддержка профилей, если вам нужны разные конфигурации под различные задачи, а также улучшена поддержка Python. Наконец-то питонисты смогут по полной использовать этот редактор кода.
Подробнее о нововведениях в нашей статье.
#новости #vscode
❤9👍3🤔1
256 попугаев дней с начала года прошли!
А это значит, что наступил День программиста! Мы с друзьями приготовили для вас небольшой сюрприз. Переходите по ссылке и трясите коробку, чтобы забрать его: https://tprg.ru/aKie
Делитесь в комментариях, что вам выпало.
А это значит, что наступил День программиста! Мы с друзьями приготовили для вас небольшой сюрприз. Переходите по ссылке и трясите коробку, чтобы забрать его: https://tprg.ru/aKie
Делитесь в комментариях, что вам выпало.
⚡8
Мини-гайд по отправке сообщений из Google Таблицы или базы данных с Python
Полезное руководство для тех, кто хочет разобраться в том, как настроить автоматическую отправку уведомлений, например, о готовности заказа. В статье разбирается вариант с таблицами Google, но вы также найдёте там информацию для привязки кода к CMS.
Полезное руководство для тех, кто хочет разобраться в том, как настроить автоматическую отправку уведомлений, например, о готовности заказа. В статье разбирается вариант с таблицами Google, но вы также найдёте там информацию для привязки кода к CMS.
Хабр
Мини-гайд по отправке сообщений из Google Таблицы или базы данных с Python
В этом материале расскажем, как автоматизировать отправку сообщений-уведомлений по данным из таблицы. Допустим, есть заранее приготовленная база данных в CMS, куда попадают заявки от покупателей —...
Какое утверждение верно для B-дерева?
Anonymous Quiz
16%
Все пути от корня до листьев имеют одинаковую длину
19%
Узлы могут иметь произвольное количество ключей
54%
Каждый узел содержит ровно два дочерних узла
11%
B-деревья используются только для хранения числовых данных
🤯7☃3👾2❤1
Click — удобный инструмент для создания CLI на Python
Если вам нужно создать интерфейс командной строки для вашего проекта, то этот пакет позволит сделать это максимально просто.
Инструмент бесплатный и с отличной документацией: https://click.palletsprojects.com/en/8.1.x/
#инструменты #библиотека #cli
Если вам нужно создать интерфейс командной строки для вашего проекта, то этот пакет позволит сделать это максимально просто.
Инструмент бесплатный и с отличной документацией: https://click.palletsprojects.com/en/8.1.x/
#инструменты #библиотека #cli
Forwarded from Точка входа в программирование
Большой каталог шпаргалок на все случаи жизни
Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.
Если вам чего-то не хватило, то вы можете предложить свою шпаргалку в качестве контрибьютора.
#шпаргалки
Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.
Если вам чего-то не хватило, то вы можете предложить свою шпаргалку в качестве контрибьютора.
#шпаргалки
👍5
Old but gold: Два простых способа преобразовать файл Python в EXE-файл
Если вы написали программу и хотите, чтобы ею могли пользоваться не только разработчики, но и простые пользователи, то стоит оформить её в удобном формате — сделать интерфейс и преобразовать файлы
Здесь вы узнаете, в каких случаях пригодится такое преобразование и как его можно сделать различными способами:
https://www.datacamp.com/tutorial/two-simple-methods-to-convert-a-python-file-to-an-exe-file
Если вы написали программу и хотите, чтобы ею могли пользоваться не только разработчики, но и простые пользователи, то стоит оформить её в удобном формате — сделать интерфейс и преобразовать файлы
.exe
, чтобы программу было удобно установить. Вот именно о последнем и пойдёт речь в этой статье. Здесь вы узнаете, в каких случаях пригодится такое преобразование и как его можно сделать различными способами:
https://www.datacamp.com/tutorial/two-simple-methods-to-convert-a-python-file-to-an-exe-file
❤6
Media is too big
VIEW IN TELEGRAM
Разбор паттерна Singleton в Python
Singleton (Одиночка) — это шаблон предоставления глобального доступа к состоянию, который гарантирует, что объект всегда будет один и тот же. Это один из первых паттернов, которые изучают разработчики.
В этом видео вы сможете разобраться в том, как именно он работает и для чего нужен. А также узнаете о Monostate.
#паттерны #singleton #видео
Singleton (Одиночка) — это шаблон предоставления глобального доступа к состоянию, который гарантирует, что объект всегда будет один и тот же. Это один из первых паттернов, которые изучают разработчики.
В этом видео вы сможете разобраться в том, как именно он работает и для чего нужен. А также узнаете о Monostate.
#паттерны #singleton #видео
👍4✍1🆒1
Простыми словами: Структуры данных в Python
Мы немного забежали вперёд и уже разобрали две популярных структуры данных — BST и B-Tree. Но давайте немного откатимся назад и кратко разберём какие вообще структуры данных используются в Python помимо деревьев и чем они отличаются.
1. Списки (Lists)
Списки — это упорядоченные изменяемые коллекции, которые могут содержать элементы любого типа. Они поддерживают произвольный доступ по индексу и предоставляют множество встроенных методов для манипуляции элементами.
2. Кортежи (Tuples)
Кортежи — это упорядоченные неизменяемые коллекции. После создания их элементы нельзя изменить. Кортежи полезны для хранения объектов, которые не должны изменяться в ходе выполнения программы.
3. Словари (Dictionaries)
Словари — это неупорядоченные коллекции пар ключ-значение. Они позволяют быстро находить значение по ключу и часто используются для представления разреженных данных или объектов с именованными полями.
4. Множества (Sets)
Множества — это неупорядоченные коллекции уникальных элементов. Они поддерживают операции над множествами, такие как объединение, пересечение и разность, и полезны для быстрого удаления дублирующихся элементов из коллекций.
5. Очереди (Queues)
Очереди обеспечивают порядок очередности элементов «первым пришел — первым вышел» (FIFO). В Python можно использовать модуль
6. Стек (Stacks)
Стек обеспечивает порядок «последним пришел — первым вышел» (LIFO). В Python стек можно реализовать с помощью списка, используя методы
7. Двусвязные списки (Linked Lists)
Двусвязные списки состоят из узлов, каждый из которых содержит значение и ссылки на следующий и предыдущий узлы. Они обеспечивают эффективное добавление и удаление элементов, но требуют больше памяти, чем массивы.
8. Деревья (Trees)
Деревья используются для представления иерархических данных. Один из популярных видов деревьев — бинарное дерево поиска (BST), где каждый узел имеет не более двух детей, а левое поддерево содержит значения меньше родительского узла, правое — больше.
9. Графы (Graphs)
Графы состоят из узлов и ребер, связывающих их. Они используются для представления сетевых структур, таких как социальные сети, маршруты в транспорте и т.д. В Python графы можно реализовать с помощью словарей или использовать библиотеки, такие как NetworkX.
Эти структуры данных обеспечивают различные способы хранения, организации и манипуляции данными в Python и играют ключевую роль в разработке эффективных алгоритмов и приложений. Выбор подходящей структуры данных зависит от конкретной задачи и требований к производительности.
Про что ещё рассказать в рубрике простыми словами или какую тему разобрать подробнее? Напишите в комментарии
#простымисловами #структурыданных
Мы немного забежали вперёд и уже разобрали две популярных структуры данных — BST и B-Tree. Но давайте немного откатимся назад и кратко разберём какие вообще структуры данных используются в Python помимо деревьев и чем они отличаются.
1. Списки (Lists)
Списки — это упорядоченные изменяемые коллекции, которые могут содержать элементы любого типа. Они поддерживают произвольный доступ по индексу и предоставляют множество встроенных методов для манипуляции элементами.
my_list = [1, 2, 3, "hello", 4.5]
2. Кортежи (Tuples)
Кортежи — это упорядоченные неизменяемые коллекции. После создания их элементы нельзя изменить. Кортежи полезны для хранения объектов, которые не должны изменяться в ходе выполнения программы.
my_tuple = (1, 2, 3, "hello", 4.5)
3. Словари (Dictionaries)
Словари — это неупорядоченные коллекции пар ключ-значение. Они позволяют быстро находить значение по ключу и часто используются для представления разреженных данных или объектов с именованными полями.
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
4. Множества (Sets)
Множества — это неупорядоченные коллекции уникальных элементов. Они поддерживают операции над множествами, такие как объединение, пересечение и разность, и полезны для быстрого удаления дублирующихся элементов из коллекций.
my_set = {1, 2, 3, 4, 5}
5. Очереди (Queues)
Очереди обеспечивают порядок очередности элементов «первым пришел — первым вышел» (FIFO). В Python можно использовать модуль
collections.deque
для эффективного выполнения операций на концах очереди.from collections import deque
my_queue = deque([1, 2, 3, 4, 5])
my_queue.append(6)
my_queue.popleft()
6. Стек (Stacks)
Стек обеспечивает порядок «последним пришел — первым вышел» (LIFO). В Python стек можно реализовать с помощью списка, используя методы
append()
и pop()
.my_stack = [1, 2, 3, 4, 5]
my_stack.append(6)
my_stack.pop()
7. Двусвязные списки (Linked Lists)
Двусвязные списки состоят из узлов, каждый из которых содержит значение и ссылки на следующий и предыдущий узлы. Они обеспечивают эффективное добавление и удаление элементов, но требуют больше памяти, чем массивы.
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class DoublyLinkedList:
def __init__(self):
self.head = None
8. Деревья (Trees)
Деревья используются для представления иерархических данных. Один из популярных видов деревьев — бинарное дерево поиска (BST), где каждый узел имеет не более двух детей, а левое поддерево содержит значения меньше родительского узла, правое — больше.
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
9. Графы (Graphs)
Графы состоят из узлов и ребер, связывающих их. Они используются для представления сетевых структур, таких как социальные сети, маршруты в транспорте и т.д. В Python графы можно реализовать с помощью словарей или использовать библиотеки, такие как NetworkX.
# Пример простого графа с использованием словаря
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
Эти структуры данных обеспечивают различные способы хранения, организации и манипуляции данными в Python и играют ключевую роль в разработке эффективных алгоритмов и приложений. Выбор подходящей структуры данных зависит от конкретной задачи и требований к производительности.
Про что ещё рассказать в рубрике простыми словами или какую тему разобрать подробнее? Напишите в комментарии
#простымисловами #структурыданных
Telegram
Zen of Python
Простыми словами: Бинарное дерево поиска
Бинарное дерево поиска (Binary Search Tree, или просто BST) — это структура данных, которая помогает легко и быстро находить, добавлять и удалять элементы. Давайте разберёмся, что это такое и как с ним работать, на…
Бинарное дерево поиска (Binary Search Tree, или просто BST) — это структура данных, которая помогает легко и быстро находить, добавлять и удалять элементы. Давайте разберёмся, что это такое и как с ним работать, на…
👍6❤2❤🔥1
Создание фуллстек-приложения с помощью Django, Vue.js и Flowbite
Эти три технологии обеспечивают быстрый и простой способ для начинающих освоить разработку веб-приложений, создавая при этом красивый пользовательский интерфейс.
В этом руководстве вы увидите, как настроить эти инструменты и создать с помощью них первый проект:
https://chesda.hashnode.dev/django-vue-flowbite
#django #vue #веб
Эти три технологии обеспечивают быстрый и простой способ для начинающих освоить разработку веб-приложений, создавая при этом красивый пользовательский интерфейс.
В этом руководстве вы увидите, как настроить эти инструменты и создать с помощью них первый проект:
https://chesda.hashnode.dev/django-vue-flowbite
#django #vue #веб
❤5